(学习笔记)基于opencv颜色过滤只保留红色区域(适用于图像分割方面)
来源:互联网 发布:无间道 无间风云 知乎 编辑:程序博客网 时间:2024/06/05 14:42
- H分量得是(0,8),(120,180),S与V分量没有做筛选
- 分别取得H,S,V分量,注意图像转化的时候BGR2HSV,所以s.val[0]是B或H的值,s.val[1]是G或S的值,s.val[2]则是R或V的值。另外要注意一点,因为是对彩色图像做实验,所以如果传入的图片不是3通道的彩色图片,那么就会出内存错误。
opencv 的H范围是0~180,红色的H范围大概是(0~8)∪(160,180) ,S是饱和度,一般是大于一个值,S过低就是灰色(参考值S>80),V是亮度,过低就是黑色,过高就是白色(参考值220>V>50)。
所以接下来要做的就是遍历图像,获取图像每个像素点的H,S,V分量,然后做判断,满足条件的就保留,不满足的就赋值为黑色。
- void colorFilter(CvMat *inputImage, CvMat *&outputImage)
- {
- int i, j;
- IplImage* image = cvCreateImage(cvGetSize(inputImage), 8, 3);
- cvGetImage(inputImage, image);
- IplImage* hsv = cvCreateImage( cvGetSize(image), 8, 3 );
- cvCvtColor(image,hsv,CV_BGR2HSV);
- int width = hsv->width;
- int height = hsv->height;
- for (i = 0; i < height; i++)
- for (j = 0; j < width; j++)
- {
- CvScalar s_hsv = cvGet2D(hsv, i, j);//获取像素点为(j, i)点的HSV的值
- /*
- opencv 的H范围是0~180,红色的H范围大概是(0~8)∪(160,180)
- S是饱和度,一般是大于一个值,S过低就是灰色(参考值S>80),
- V是亮度,过低就是黑色,过高就是白色(参考值220>V>50)。
- */
- CvScalar s;
- if (!(((s_hsv.val[0]>0)&&(s_hsv.val[0]<8)) || (s_hsv.val[0]>120)&&(s_hsv.val[0]<180)))
- {
- s.val[0] =0;
- s.val[1]=0;
- s.val[2]=0;
- cvSet2D(hsv, i ,j, s);
- }
- }
- outputImage = cvCreateMat( hsv->height, hsv->width, CV_8UC3 );
- cvConvert(hsv, outputImage);
- cvNamedWindow("filter");
- cvShowImage("filter", hsv);
- waitKey(0);
- cvReleaseImage(&hsv);
- }
阅读全文
0 0
- (学习笔记)基于opencv颜色过滤只保留红色区域(适用于图像分割方面)
- opencv之颜色过滤只留下图片中的红色区域
- 基于区域分割(图像分割)
- Matlab图像处理学习笔记(二):基于颜色的图像分割
- 图像处理学习笔记(二):基于颜色的图像分割
- 【OpenCV学习笔记 016】图像分割-种子区域生长
- 区域生长(基于区域的图像分割)
- opencv学习笔记 split(图像分割为3通道)
- opencv学习笔记(十七)利用cvPyrSegmentation()做图像分割
- OpenCV学习笔记-图像分割
- OpenCV学习笔记-图像分割
- 基于区域生长的图像分割法问题(1)
- OpenCV 2 学习笔记(27): 自选区域进行GrabCut图像分割
- 图像分割(区域生长)
- 基于OpenCV 图像分割
- 【OpenCV学习笔记】【教程翻译】三( 车牌检测之区域分割)
- OpenCV学习笔记(四):ROI区域图像叠加和图像线性混合
- OpenCV学习笔记(二)ROI区域图像叠加&初级图像混合
- 微信及支付宝退款记录.
- SpringBoot-Hibernate校验
- 结巴分词包含的文件
- 计算机网络-4
- 从Mac安装Mysql到Xcode连接Navicat
- (学习笔记)基于opencv颜色过滤只保留红色区域(适用于图像分割方面)
- jvm 调优的总结 查看应用的JVM实时情况
- codeforces 883C. Downloading B++
- 常用java片段
- 他跟蒋介石、汪精卫并称三大巨头,蒋介石拿着枪才敢去见他
- mysql
- 使用sp_refreshview刷新视图
- async/await && promise
- datatable参数以及应用