美文网首页
OpenCV:二、修改和保存图像

OpenCV:二、修改和保存图像

作者: 马洪滔 | 来源:发表于2020-08-17 09:59 被阅读0次

前言

在上一章中以及描述了如何使用cv :: imread加载图像并通过cv :: imshow 将其显示在窗口中。点击进入加载和显示图像

目标

本章中,将学习如何:

  • 加载图像(使用cv::imread)
  • 使用cv :: cvtColor将图像从BGR转换为灰度格式
  • 将转换的图像保存在磁盘上(使用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;
}

说明

  • 使用cv :: imread加载imageName路径的图像。假设加载BGR图像
  • 使用cv :: cvtColor将图像从BGR转换成灰度格式。
cvtColor( image, gray_image, COLOR_BGR2GRAY );
源图像(image)
目标图像(gray_image)
附加参数(COLOR_BGR2GRAY )指定转换方式。
  • 通过使用cv :: imwrite将新的gray_image图像保存到磁盘上(否则在程序结束后丢失)
 imwrite( "../images/Gray_Image.jpg", gray_image );
  • 最后,创建两个窗口并使用它们来显示原始图像以及目标图像
namedWindow( imageName, WINDOW_AUTOSIZE );
namedWindow( "Gray image", WINDOW_AUTOSIZE );
imshow( imageName, image );
imshow( "Gray image", gray_image );

结果

编译代码,然后运行可执行文件,将图像路径作为参数。如果你在Windows上,可执行文件当然也会包含一个exe扩展名。需要确保图像文件路径正确。

相关文章

网友评论

      本文标题:OpenCV:二、修改和保存图像

      本文链接:https://www.haomeiwen.com/subject/urybdktx.html