一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

代码如下:

复制代码
 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>\n ", 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 \n " );
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) 函数,用于等待用户的按键操作来关闭窗口。

posted on   一杯清酒邀明月  阅读(439)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示