博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《学习OpenCV》第三章练习(参考代码)第7题
阅读量:6830 次
发布时间:2019-06-26

本文共 1989 字,大约阅读时间需要 6 分钟。

hot3.png

#include
#include
#include
int main(int argc, char** argv){ IplImage* img = cvLoadImage("E:\\1.jpg"); IplImage* red = cvCreateImage(cvGetSize(img), img->depth, 1); IplImage* green = cvCreateImage(cvGetSize(img), img->depth, 1); IplImage* blue = cvCreateImage(cvGetSize(img), img->depth, 1); IplImage* green_image = cvCreateImage(cvGetSize(img), img->depth, img->nChannels); cvSplit(img, red, green, blue, NULL); cvZero(red); cvZero(blue); cvMerge(red, green, blue, NULL, green_image); cvNamedWindow("GreenChannel", CV_WINDOW_AUTOSIZE); cvShowImage("GreenChannel", green_image); //克隆这个绿图两次(分别命名为clone1和clone2) // IplImage* clone1 = cvCloneImage(green); IplImage* clone2 = cvCloneImage(green); //求出这个绿色平面的最大值和最小值 // double min; double max; CvPoint minPtr; CvPoint maxPtr; cvMinMaxLoc(green, &min, &max, &minPtr, &maxPtr); //注意:输入的图象必须是单通道的 printf("Minimum: %lf, Position: (%d, %d) \n", min, minPtr.x, minPtr.y); printf("Maximum: %lf, Position: (%d, %d) \n", max, maxPtr.x, maxPtr.y); //将clone1的所有元素赋值为thresh = (unsigned char)((最大值-最小值)/2.0) // double thresh = (max-min)/2; cvZero(clone1); cvAddS(clone1, cvScalar(thresh), clone1); //将clone2所有元素赋值为0,然后调用函数cvCmp(green_image, clone1, clone2, CV_CMP_GE)。 //现在clone2将是一个标识绿图中值超过thresh的掩码图象。 // //如果green中的元素大于或等于clone1中对应位置的元素,那么clone2对应位置的像素值被设为255 cvCmp(green, clone1, clone2, CV_CMP_GE); //最后,使用cvSubS(green_image, thresh/2, green_image, clone2)函数并显示结果 // cvSubS(green, cvScalar(thresh/2), green, clone2); IplImage* resultImg = cvCreateImage(cvGetSize(img), img->depth, img->nChannels); cvMerge(red, green, blue, NULL, resultImg); cvNamedWindow("FinalResult", CV_WINDOW_AUTOSIZE); cvShowImage("FinalResult", resultImg); cvWaitKey(0); cvReleaseImage(&img); cvReleaseImage(&red); cvReleaseImage(&green); cvReleaseImage(&blue); cvReleaseImage(&green_image); cvReleaseImage(&clone1); cvReleaseImage(&clone2); cvDestroyWindow("GreenChannel");}

转载于:https://my.oschina.net/JiamingMai/blog/186696

你可能感兴趣的文章
全站HTTPS升级系列(三)nginx配置全站HTTPS
查看>>
自定义滚动条的实现思路与关键算法
查看>>
ES6 - 变量的解构赋值解析
查看>>
建立自己的编程世界
查看>>
起早贪黑几个月,我写完了人生第一本书!
查看>>
let、const、var
查看>>
JavaScript Promise 对象
查看>>
Stylus在VUE2.0以上的使用
查看>>
Android:Activity与Fragment、Service之间的数据通信
查看>>
深入理解-字符编码ASCII,GB2312,GBK,Unicode,UTF-8
查看>>
Android网络请求练习
查看>>
Halo 博客系统 -0.4.0 发布
查看>>
golang 介绍以及踩坑之四
查看>>
Shiro-集成验证码
查看>>
最全Drawable基础总结
查看>>
(十六)java版电子商务spring cloud分布式微服务b2b2c社交电商-用restTemplate消费服务...
查看>>
小猿圈学习Web前端需要掌握哪些内容?
查看>>
ubuntu 下安装apache+php+mysql
查看>>
eclipse freemarker 插件 地址
查看>>
Kinect for windows中的抓握(Grip)和释放(GripRelease)
查看>>