opencv获取图像RGB值的两种方法
来源:互联网 发布:咸阳网络买花花店 编辑:程序博客网 时间:2024/06/04 20:40
1.使用opencv1中的IplImage
代码如下:
int main(){IplImage* img = cvLoadImage("lena.jpg");CvScalar s;for (int y = 0; y <img->height; y++) {for (int x = 0; x < img->width; x++) {s = cvGet2D(img, y, x);int mu = (s.val[0] + s.val[1] + s.val[2]) / 3;//照片每个像素点RGB三通道的均值int piex = sqrt((pow(s.val[0] - mu, 2) + pow(s.val[1] - mu, 2) + pow(s.val[2] - mu, 2))/3);s.val[0] = piex;s.val[1] = piex;s.val[2] = piex; //printf("mu=%d\n", mu);//printf("B=%f,G=%f,R=%f\n", s.val[0], s.val[1], s.val[2]);//获取的分别是BGR的值cvSet2D(img, y, x, s);}}cvSaveImage("img.jpg", img);waitKey(0);}
2.使用opencv2的Mat代码如下:
int main(){ Mat img = imread("lena.jpg");for (int i = 0; i<img.rows; i++){for (int j = 0; j<img.cols; j++){int mu = img.at<Vec3b>(i, j)[0] + img.at<Vec3b>(i, j)[1] + img.at<Vec3b>(i, j)[2];mu /= 3;int stdev = sqrt(double((img.at<Vec3b>(i, j)[0] - mu)*(img.at<Vec3b>(i, j)[0] - mu) + (img.at<Vec3b>(i, j)[1] - mu)*(img.at<Vec3b>(i, j)[1] - mu) + (img.at<Vec3b>(i, j)[2] - mu)*(img.at<Vec3b>(i, j)[2] - mu)) / 3);for (int k = 0; k<3; k++)img.at<Vec3b>(i, j)[k] = stdev;}}imshow("lena.jpg", img);imwrite("A.jpg", img);waitKey(0);return 0;}
效果图如下:阅读全文
0 0
- opencv获取图像RGB值的两种方法
- opencv获取图像像素值的两种方法
- OpenCV CvGet2D获取彩色图像的RGB值
- C++读取图像的RGB值(两种方法,均经过测试)
- 两种获取灰度图像的方法
- openCV中访问图像像素的两种方法
- opencv获取彩色(RGB)图像直方图
- C#两种获取灰度图像的方法
- C#两种获取灰度图像的方法
- C#两种获取灰度图像的方法
- C#两种获取灰度图像的方法
- 【OpenCV】分离多通道图像RGB的值
- 【OpenCV】分离多通道图像RGB的值
- 【OpenCV】分离多通道图像RGB的值
- opencv采用指针的方式设置图像中的RGB值
- 【OpenCV】分离多通道图像RGB的值
- 基于opencv查看图像各像素点的RGB值
- 如何获取RGB图像的单色图像
- hdu6180Schedule
- XSS跨站脚本攻击剖析与防御--读书笔记
- cmake升级
- 实现android studio底部导航栏四个标签的效果
- requireJS模块化开发
- opencv获取图像RGB值的两种方法
- 面试OR笔试36——计算算术表达式
- windows下Python教程百度云地址
- Refletion2017.9.12
- jdk源码三 RandomAccess接口用法
- Python操作Access数据库
- Python 的platform模块 识别运行环境操作系统
- 学习一个二分图
- AndroidManifest解析