二 Opencv核心模块系列
1 输入,修改,保存图像
首先,我们来讲解一下所用到的一些符号
1 输入图像使用 cv::imread
2 修改图像使用 cv::cvtColor
3 保存图像使用 cv::imwrite
直接上官网代码,边解释边理解
#include <opencv2/opencv.hpp>
using namespace cv;
int main( int argc, char** argv )
{
char* imageName = argv[1];
Mat image;
image = imread( imageName, IMREAD_COLOR );
if( argc != 2 || !image.data )
{
printf( " No image data \n " );
return -1;
}
Mat gray_image;
cvtColor( image, gray_image, COLOR_BGR2GRAY );
imwrite( "../../images/Gray_Image.jpg", gray_image );
namedWindow( imageName, WINDOW_AUTOSIZE );
namedWindow( "Gray image", WINDOW_AUTOSIZE );
imshow( imageName, image );
imshow( "Gray image", gray_image );
waitKey(0);
return 0;
}
代码解释
1 首先我们利用cv::imread读取由imageName所对应的图片,在这里我们读取的是BGR图像
2 我们将图片由BGR模式转变为灰度图,使用下面这个函数
cvtColor( image, gray_image, COLOR_BGR2GRAY );
这里我们讲解一下cvtColor所采用的参数
1 原始图片(image)
2 转变后的图片(gray_image)
3 说明将进行什么转换的一个参数(COLOR_BGR2GRAY)
3 现在有了转换后的图片,我们用imwrite这个函数来保存它
imwrite( "../../images/Gray_Image.jpg", gray_image );
我们将以Gray_Image.jpg的名字保存gray_image,并储存在相应目录下…/…/images/Gray_Image.jpg
4 我们创建两个窗口来对比图片
namedWindow( imageName, WINDOW_AUTOSIZE );
namedWindow( "Gray image", WINDOW_AUTOSIZE );
imshow( imageName, image );
imshow( "Gray image", gray_image );
前两句是创建两个分别名为imageName和Gray image的窗口
后两句是在这两个窗口中输出相应的图片