OpenCV--图像的反色与灰度图显示
来源:互联网 发布:js对象深度遍历 编辑:程序博客网 时间:2024/05/17 12:56
对于单通道图像:
void Invert1(){ Mat src,dest; src = imread("lena.jpg"); if(!src.data){ cout << "图像载入失败" << endl; return ; } namedWindow("原图像",CV_WINDOW_AUTOSIZE); imshow("原图像",src); cvtColor(src,dest,COLOR_BGR2GRAY); int rows = src.rows; int cols = src.cols; //单通道图像的反色 for(int row = 0;row<rows;row++){ for(int col = 0;col<cols;col++){ dest.at<uchar>(row,col) = 255 - dest.at<uchar>(row,col); } } namedWindow("单通道,反色后",CV_WINDOW_AUTOSIZE); imshow("单通道,反色后",dest); cvWaitKey();}
对于三通道图像:
void Invert2(){ Mat src; src = imread("lena.jpg"); if(!src.data){ cout << "图像载入失败" << endl; return ; } namedWindow("原图像",CV_WINDOW_AUTOSIZE); imshow("原图像",src); int rows = src.rows; int cols = src.cols; cout << rows << "\t" << cols << endl; Mat dest; dest.create(src.size(),src.type()); for(int row = 0;row<rows;row++){ for(int col=0;col<cols;col++){ int b = src.at<Vec3b>(row,col)[0]; int g = src.at<Vec3b>(row,col)[1]; int r = src.at<Vec3b>(row,col)[2]; dest.at<Vec3b>(row,col)[0] = 255-b; dest.at<Vec3b>(row,col)[1] = 255-g; dest.at<Vec3b>(row,col)[2] = 255-r; } } namedWindow("三通道,反色后",CV_WINDOW_AUTOSIZE); imshow("三通道,反色后",dest); cvWaitKey();}
OpenCV提供的函数bitwise_not(src,dest):
void Invert3(){ Mat src,dest; src = imread("lena.jpg"); if(!src.data){ cout << "图像载入失败" << endl; return ; } namedWindow("原图像",CV_WINDOW_AUTOSIZE); imshow("原图像",src); cv::bitwise_not(src,dest); namedWindow("反色后",CV_WINDOW_AUTOSIZE); imshow("反色后",dest); cvWaitKey();}
不同于使用cvtColor()函数,我们可以自己对像素操作实现灰度图的显示:
void GrayShow(){ Mat src; src = imread("lena.jpg"); if(!src.data){ cout << "图像载入失败" << endl; return ; } namedWindow("原图像",CV_WINDOW_AUTOSIZE); imshow("原图像",src); int rows = src.rows; int cols = src.cols; Mat dest = Mat(src.rows,src.cols,0); for(int row = 0;row<rows;row++){ for(int col=0;col<cols;col++){ int b = src.at<Vec3b>(row,col)[0]; int g = src.at<Vec3b>(row,col)[1]; int r = src.at<Vec3b>(row,col)[2]; dest.at<uchar>(row,col) = max(r,max(g,b));//选择bgr中最大值 //dest.at<uchar>(row,col) = min(r,min(g,b));//选择bgr中最小值 } } namedWindow("min,灰度图",CV_WINDOW_AUTOSIZE); imshow("min,灰度图",dest); cvWaitKey();}
阅读全文
5 0
- OpenCV--图像的反色与灰度图显示
- opencv图像的读入、灰度化、二值化、反色
- opencv图像的读入、灰度化、二值化、反色
- opencv图像的读入、灰度化、二值化、反色
- OpenCV入门例子 反色显示图像
- 图像的反色Opencv
- android 使用NDK进行图像处理(openCV)时的图像转换问题(灰度图显示)
- 图像处理--灰度化,二值化与反色
- opencv读取图像的灰度值并显示出来
- OpenCV 读取灰度图像的灰度值
- opencv彩色图像与灰度图像叠加
- delphi FMX图像的灰度化和反色
- Opencv 显示灰度图像出错解决方法
- opencv实现灰度图像的直方图点计算以及灰度直方图显示
- python opencv(9)图像的复制与灰度化
- BMP格式图像的反色和变为灰度图代码
- Opencv图像的反色处理
- 图像的灰度变换——图像旋转、图像的反色处理、对比度拉伸
- react---组件
- Java中使用OpenSSL生成的RSA公私钥进行数据加解密
- Mui二维码扫描
- SQL 批量插入数据
- IDEA 设置泛型检查
- OpenCV--图像的反色与灰度图显示
- thinkphp5配置nginx访问
- Centos7搭建ftp服务器
- win10 关闭自动更新
- 使用BigDecimal(避免E科学计数法)四舍五入保留2位小数
- 通用基础表逻辑设计(二)——扩展字段
- indexOf函数解读
- 有一个整数数组,要求将其格式化为字符串,每个数字以逗号分开
- 小游戏之---三子棋----