opencv3中图像灰度化处理(手动编写处理函数实现)
来源:互联网 发布:中级程序员资格考试 编辑:程序博客网 时间:2024/05/17 23:31
新版本的opencv中,习惯于用Mat处理,而一般学习之初,用旧版本的写法比较多(IplImage)。突然间,遇到这样的问题,需要用新的版本实现图像灰度化处理,发现需要访问图像矩阵的数据元素。要找到旧版本的实例比较多,实现的方法介绍也比较多(方法可以参考http://blog.csdn.net/likezhaobin/article/details/6915754)。本帖只实现其中一种方法,其余的方法, 修改少量代码就行。
具体代码如下:
#include "stdafx.h"#include <iostream>#include "opencv2/opencv.hpp"#include "opencv/cv.h"using namespace std;using namespace cv;void cvtCOLOR(Mat src, Mat dst){float R, G, B;for (int y = 0; y < src.rows; y++){uchar* data = dst.ptr<uchar>(y);for (int x = 0; x < src.cols; x++){B = src.at<Vec3b>(y, x)[0];G = src.at<Vec3b>(y, x)[1];R = src.at<Vec3b>(y, x)[2];data[x] = (int)(R * 0.299 + G * 0.587 + B * 0.114);//利用公式计算灰度值(加权平均法)}}}int main(){Mat src = imread("1.jpg", 1);Mat dst(src.rows, src.cols, CV_8UC1);//大小与原图相同的八位单通道图cvtCOLOR(src, dst);imshow("原始图", src);imshow("灰度图", dst);waitKey(0);return 0;}
效果如下图所示:
1 0
- opencv3中图像灰度化处理(手动编写处理函数实现)
- opencv3图像灰度化处理 c++
- 图像灰度化处理
- PhotoShop算法实现--图像灰度化处理(六)
- 图像处理:图像灰度化
- Python-OpenCV 处理图像(七):图像灰度化处理
- Python-OpenCV 处理图像(七):图像灰度化处理
- WPF:图像处理(二)灰度化
- WPF:图像处理(二)灰度化
- 图像处理中灰度密度图像
- delphi图像灰度化处理
- 图像处理第一步:灰度化
- 图像处理之灰度化
- java图像处理---灰度化(二值化)处理
- c#图像处理-灰度处理(gray)
- Matlab图像处理之灰度变换函数
- 图像处理之图像灰度化
- 图像处理之图像灰度化
- 安卓打包
- XCode7真机调试时出现 Could not launch process launch failed: Security
- linux 0.11 内核学习 -- setup.s
- java Timer和TimerTask使用
- test7.15
- opencv3中图像灰度化处理(手动编写处理函数实现)
- ubuntu修改mysql密码
- 广告插入技术几大步骤
- 【Java高级】Java中NIO非阻塞socket通信
- 关于Ubuntu Kylin下载后vim的更新。
- WebForm总结_服务器内部执行过程
- java设计界面与按钮之间的连接方法
- nyoj--82--一笔画问题
- 浅谈ServletContext