毕业课题---RGB图像转换为灰度图

使用OpenCv将一幅图像转换为灰度图像

灰度图像在实际应用中也不少,转换为灰度图像比较简单,关键函数:cvCvtColor

cvCvtColor(IplImage* src, IplImage* dst, CV_BRG2GRAY);


注意:

最后一个参数为CV_BRG2GRAY,表示将BRG图片(彩色图片)转换为灰度图片(黑白)。

参数src、dst必须事先分配好内存空间!


下面是代码:

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <opencv/cv.h>  
  4. #include <opencv/highgui.h>  
  5.   
  6. int toGray(IplImage* img)  
  7. {  
  8.     IplImage* dst = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);//用原图像指针创建新图像  
  9.     if(NULL == dst)  
  10.         return -1;  
  11.     cvCvtColor(img, dst, CV_BGR2GRAY);//转换颜色空间 我试过,如果没有这一步 得到的图像将是全黑  
  12.   
  13.     cvNamedWindow("Gray", CV_WINDOW_AUTOSIZE);  
  14.     cvShowImage("Gray", dst);  
  15.     cvSaveImage("Gray.jpg", dst, 0);//保存  
  16.       
  17.     cvWaitKey(0);  
  18.     cvReleaseImage(&dst);  
  19.     cvDestroyWindow("Gray");  
  20.   
  21.     return 1;  
  22. }  
  23.   
  24. int main(int argc, char** argv)  
  25. {  
  26.     if(argc != 2)  
  27.     {  
  28.         printf("Usage:test xxx.jpg\n");  
  29.         return 1;  
  30.     }  
  31.   
  32.     IplImage* img = cvLoadImage(argv[1],   
  33.             CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR);                                                                                                           //如果想要载入最真实的图像,选择CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR。  
  34.     if(NULL == img)  
  35.     {  
  36.         printf("Image load fail!\n");  
  37.         return 2;  
  38.     }  
  39.   
  40.     cvNamedWindow("RGB", CV_WINDOW_AUTOSIZE);  
  41.     cvShowImage("RGB", img);  
  42.   
  43.     toGray(img);  
  44.   
  45.     cvReleaseImage(&img);  
  46.     cvDestroyWindow("RGB");  
  47.   
  48. }  


原图像:

            

目标图像:
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值