java用opencv实现滤镜,学习OpenCV:滤镜系列(14)——载入选区

==============================================

版权所有: 小熊不去实验室 CSDN博客

==============================================

载入选区就是在图像中选取高亮的部分

R=min(127.5,avg)

if(pix[x,y]>R)

dst[x,y]=255;

else

dst[x,y]=255;

#include #include #include using namespace cv;using namespace std;int R=11;int main(){Mat src = imread("D:/img/arrow03.jpg",1);imshow("src",src);int width=src.cols;int heigh=src.rows;Mat img(heigh/2,width/2,CV_8UC3);resize(src,img,img.size());Scalar avg=mean(src);Mat dst(img.size(),CV_8UC3);Mat mask1u[3];float avg0 = avg[0]*2>127.5 ? 127.5:avg[0]*2;float avg1 = avg[1]*2>127.5 ? 127.5:avg[1]*2;float avg2 = avg[2]*2>127.5 ? 127.5:avg[2]*2;float tmp,r;for (int y=0;y(y);uchar* dstP=dst.ptr(y);for (int x=0;xavg0)tmp = 255;elsetmp = 0;dstP[3*x]=(uchar)(tmp);r = (float)imgP[3*x+1];if(r>avg1)tmp = 255;elsetmp = 0;dstP[3*x+1]=(uchar)(tmp);r = (float)imgP[3*x+2];if(r>avg2)tmp = 255;elsetmp = 0;dstP[3*x+2]=(uchar)(tmp);}}imshow("载入选区",dst);split(dst,mask1u);imshow("蓝通道选区",mask1u[0]);imshow("绿通道选区",mask1u[1]);imshow("红通道选区",mask1u[2]);waitKey(); //imwrite("D:/img/强光.jpg",dst); imwrite("D:/img/蓝通道选区.jpg",mask1u[0]); imwrite("D:/img/蓝通道选区.jpg",mask1u[1]); imwrite("D:/img/蓝通道选区.jpg",mask1u[2]);}

原图:

fb489af87e48af6b9ea7d82ce32a629f.png

载入选区:

红通道:                                                            绿通道:

fdb16aaa7c0b4d0ab1f2fd4123a9dbb2.png     

e08e047db2e0b2f08fe787ffdf40d890.png

蓝通道:

55b35adf1703867bc9b1258faab60ed1.png

本文转载自:CSDN博客

欢迎加入我爱机器学习QQ14群:336582044

getqrcode.jpg

微信扫一扫,关注我爱机器学习公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值