zoukankan      html  css  js  c++  java
  • cvCmp、cvSplit的使用

    使用cvCmp()创建一个掩码。加载一个真实的图像。使用cvSplit()将图像分割成红、绿、蓝三个通道图像。
      a.找到并显示绿图
      b.克隆这个绿图(分别命名为clone1和clone2)
      c.求出这个绿色平面的最大值和最小值
      d.将clone1的所有元素赋值为thresh=(unsigned char)((最大值-最小值)/2.0)
      e.将clone1所有元素赋值为0,调用函数cvCmp(green_image,clone1,clone2,CV_CMP_GE)
      f.最后,使用cvSubs(green_image,thresh/2,green_image,clone2)函数并显示结果

     1 #include "cv.h"
     2 #include "highgui.h"
     3 
     4 int main(int argc, char** argv)
     5 {
     6     IplImage *img;
     7     IplImage *clone1,*clone2;
     8 
     9     img = cvLoadImage("lena.jpg",-1);
    10     IplImage* dst = cvCreateImage(cvGetSize(img),img->depth,1);
    11     cvSplit( img, 0, dst, 0, 0 );
    12     cvNamedWindow( "Green", CV_WINDOW_AUTOSIZE );
    13     cvShowImage( "Green", dst );
    14 
    15     clone1 = cvCloneImage(dst);
    16     clone2 = cvCloneImage(dst);
    17 
    18     double max,min;
    19     cvMinMaxLoc(dst,&min,&max);
    20 
    21     double thresh = (max-min)/2;
    22     cvSet(clone1,cvScalar(thresh));
    23 
    24     cvZero(clone2);
    25     cvCmp(dst,clone1,clone2,CV_CMP_GE);
    26     cvSubS(dst,cvScalar(thresh/2),dst,clone2);
    27 
    28     cvNamedWindow( "OpenCVTest6", CV_WINDOW_AUTOSIZE );
    29     cvShowImage( "OpenCVTest6", dst );
    30     cvWaitKey();
    31     cvDestroyWindow("Green");
    32     cvDestroyWindow("OpenCVTest6");
    33     cvReleaseImage(&dst);
    34 
    35     return 0;
    36 }
  • 相关阅读:
    [转载]Oracle查看当前用户权限
    [转载]Oracle查看当前用户权限
    UltraEdit实用技巧
    _splitpath,_makepath分析路径
    [ZT]让你的软件界面更漂亮(1、2)
    [book]程序员修炼之道
    考考你的C++水平
    将*.STL转换成顶点索引格式
    JBuilder 2006 企业完整版
    [book]道法自然
  • 原文地址:https://www.cnblogs.com/vitah/p/3092165.html
Copyright © 2011-2022 走看看