OpenCV C++开发 第二节:图像处理(一、图像加载、修改、保存)

上一节的开发环境配置后,就可以直接开始编写OpenCV代码了,不罗嗦,直接上代码。

一、图像加载、修改、保存

#include <opencv2\opencv.hpp>
#include <highgui.h>
using namespace cv;
int main(int argc, char** argv)
{
	//读取图像
	Mat image;
	image = imread("C:\\Users\\Administrator\\Desktop\\test.jpg", IMREAD_UNCHANGED);//IMREAD_UNCHANGED   IMREAD_GRAYSCALE   IMREAD_COLOR   读取图片
	Mat invertImage;
	cvtColor(image, invertImage, CV_BGR2GRAY);//变灰  HLS的CV_BGR2HLS
	// 创建窗口
	namedWindow("Test", CV_WINDOW_AUTOSIZE);
	namedWindow("InvertImage", CV_WINDOW_AUTOSIZE);
	// 显示图像
	imshow("Test", image);
	imshow("InvertImage", invertImage);
	// 点击关闭
	waitKey(0);
	imwrite("C:\\Users\\Administrator\\Desktop\\test1.jpg", invertImage);//保存至本地
	destroyWindow("Test");
	destroyWindow("InvertImage");
	return 0;
}

以上代码中主要的几个知识点解释下:

1.imread("C:\\Users\\Administrator\\Desktop\\test.jpg",IMREAD_UNCHANGED);

该方法加载图像文件成为一个Mat对象,其中第一个参数表示图像文件名称。

第二个参数,表示加载的图像是什么类型,支持常见的三个参数值:

(1)IMREAD_UNCHANGED (<0) 表示加载原图,不做任何改变。

(2)IMREAD_GRAYSCALE ( 0)表示把原图作为灰度图像加载进来。

(3)IMREAD_COLOR (>0) 表示把原图作为RGB图像加载进来。

2.Mat类

Mat是一个图像类,支持JPGPNGTIFF等常见格式图像文件加载。

常见的方法有:

(1)复制到新的Mat类

Mat invertImage;

image.copyTo(invertImage);

(2)获取指定范围内的图

Mat invertImage(image, Rect(10, 10, 100, 100));

3.cvtColor( image,invertImage, CV_BGR2GRAY);

该方法的功能是把图像从一个彩色空间转换到另外一个色彩空间,有三个参数,第一个参数表示源图像、第二参数表示色彩空间转换之后的图像、第三个参数表示源和目标色彩空间如:COLOR_BGR2HLS COLOR_BGR2GRAY

4.imwrite("C:\\Users\\Administrator\\Desktop\\test1.jpg", invertImage);

该方法是将转换后的invertImage保存至指定目录。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章