opencv 本身是开源的,跨平台,这里以windows为例,其它平台类似
一、读取图片
读取后可得到图片的属性
cv::Mat cv_img = imread("./1.jpg");
if (NULL == cv_img.data)return -1;
printf("debug: load image OK\n");
//显示
imshow("cv_img", cv_img); waitKey(10);
缩放
regMat.convertTo(regMat, CV_8UC1, 0.2);
通首转换
OPENCV默认图片通道顺序是BGR,而不是RGB。
cvCvtColor是opencv库中的一个函数
功能:函数cvCvtColor实现色彩空间转换。
函数形式: void cvCvtColor( const CvArr* src, CvArr* dst, int code );
参数列表:
src:源图像(输入的 8-bit , 16-bit 或 32-bit 单倍精度浮点数影像)
dst:目标图像(输入的 8-bit , 16-bit 或 32-bit 单倍精度浮点数影像)
cvtColor(src, dst, CV_RGB2GRAY);
二值化:
可以通过 调节 threshold 达到想要的结果
threshold( InputArray src,OutputArray dst,double threshold,double maxval,int type );
Mat Src = imread("color_1.png");
//如果影像为空的话,直接返回
if (Src.empty())
{
return ;
}
Mat Dst ;
//将彩色影像转换为灰度影像
//转换公式为
//Y = 0.2126 R + 0.7152 G + 0.0722 B.
// 转为二值图
threshold(Src, Dst, 122, 255, CV_THRESH_BINARY);
//创建显示原始影像和处理结果影像的窗口
namedWindow("Src", WINDOW_AUTOSIZE);
namedWindow("Dst", WINDOW_AUTOSIZE);
//显示两幅影像
imshow("Src", Src);
imshow("Dst", Dst);
//等待按键按下的时候,继续下一条语句
waitKey(0);
//销毁窗口
destroyWindow("Src");
destroyWindow("Dst");