• OpenCV 读取、修改、保存图像


    代码如下:

     1 #include <cv.h>
     2 #include <highgui.h>
     3 
     4 using namespace cv;
     5 
     6 int main( int argc, char** argv )
     7 {
     8  if(argc != 2)
     9  {
    10    printf("useage: %s <imagefile>
     ", argv[0]);
    11    return -1;
    12  }
    13  char* imageName = argv[1];
    14 
    15  Mat image;
    16  image = imread( imageName, CV_LOAD_IMAGE_COLOR);
    17 
    18  if( !image.data )
    19  {
    20    printf( " No image data 
     " );
    21    return -1;
    22  }
    23 
    24  Mat gray_image;
    25  cvtColor( image, gray_image, CV_BGR2GRAY );
    26 
    27 
    28  imwrite( "../../images/Gray_Image.jpg", gray_image );
    29 
    30  namedWindow( imageName, CV_WINDOW_AUTOSIZE );
    31  namedWindow( "Gray image", CV_WINDOW_AUTOSIZE );
    32 
    33  imshow( imageName, image );
    34  imshow( "Gray image", gray_image );
    35 
    36  waitKey(0);
    37 
    38  return 0;
    39 }

    注解

    1. 首先:

      • 创建Mat,用于保存图像内容。
      • 使用 imread 读取图像,图像路径为 imageName ,图像按BGR格式读取。
    2. 其次,将RGB图像转化为灰度格式。Opencv中有现成的转化函数:

      cvtColor( image, gray_image, CV_BGR2GRAY );
      

      cvtColor 的参数为:

      • 源图像 (image) 。
      • 目标图像 (gray_image),用于保存转换图像。
      • 附加参数,用于指定转换的类型,例子中使用参数 CV_BGR2GRAY 。参数的具体定义请参见cvColor函数的API文档。
    3. 然后,使用函数 imwrite 将得到的灰度图像 gray_image 保存到硬盘。程序结束时,该灰度图像将会被释放。

      imwrite( "../../images/Gray_Image.jpg", gray_image );
      

      该函数,将图像写入到指定的文件夹下,程序执行时需保证该文件夹存在。示例中,将得到的灰度图像写到../../images/下,命名为Gray_Image.jpg。

    4. 最后,为了检验图像是否正确,将原始图像和灰度图像分别显示到打开的窗口中:

      namedWindow( imageName, CV_WINDOW_AUTOSIZE );
      namedWindow( "Gray image", CV_WINDOW_AUTOSIZE );
      
      imshow( imageName, image );
      imshow( "Gray image", gray_image );
      
    5. 结尾的 waitKey(0) 函数,用于等待用户的按键操作来关闭窗口。

  • 相关阅读:
    iOS之地理位置及定位系统 -- 入门笔记(用Swift)
    网易新闻iOS版使用的18个开源组件
    自学 iOS – 三十天三十个 Swift 项目
    iOS之UI--富文本总结
    IOS开发--横向流水布局实现
    IOS开发--仿制网易新闻
    Runtime 方法替换 和 动态添加实例方法 结合使用
    写给IOS开发工程师的网页前端入门笔记
    Runtime(动态添加属性)
    const,static,extern简介(重要)
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/12170881.html
Copyright © 2020-2023  润新知