opencv2---图像的灰度化


我这里使用的是opencv3.0。0的版本,运行环境为vs2013

实现代码

#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include <opencv2\imgproc\types_c.h>
#include<opencv2/imgproc/imgproc.hpp>
#include<iostream>
int main(){
//读取图像源
cv::Mat srcImage = cv::imread("a1.jpg");
if (srcImage.empty()){
return -1;
}
//转为灰度图像
cv::Mat srcGray;//创建无初始化矩阵
cv::cvtColor(srcImage, srcGray,CV_RGB2GRAY);
cv::imshow("srcImage", srcImage);//显示源图像
cv::imshow("srcGray", srcGray);//显示灰度图像
cv::waitKey(0);
return 0;


}

首先把代码截图贴出来

 

其实实现原理还是挺简单的,主要是调用库函数,对于上面代码中的core.hpp这个头文件是opencv的主要头文件,包括了数据结构、矩阵运算、数据变化、内存管理、文本和数学等功能,而highgui.hpp 是另外一种重要的文件,包括图形界面和视频图像处理的头文件,如果遇到CV_RGB2GRAY报错则需要导入#include <opencv2\imgproc\types_c.h> 这个头文件 。

在显示图片时,一般要在cv::imshow()函数后加一句cv::waiKey(0)表示此程序显示图像后将暂停等待接收一个键盘的输入,如果没有这句话,则显示图像的代码很快就会执行过去了,所以要用这句话来暂停。当然waiKey(delay)里面的参数是可以任意的,当delay<=0时是等待输入所以可用来做暂停,而delay>0时则表示图像显示的时间且delay表示的是毫秒如cv::waitKey(1000)表示图像显示1s然后显示下一张常用于视频的显示。

 

程序运行结果

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM