OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量

转自http://blog.csdn.net/leixiaohua1020/article/details/19020903

使用OpenCV可以提分别提取显示一张图片(或者视频)的R,G,B颜色分量。效果如下。

原图:


R:


G:


B:



示例代码如下,貌似很久以前网上找的的,逻辑很清晰,就是把R,G,B三个分量分开,然后显示出来,就不注释了。


[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #include "cv.h"  
  2. #include "highgui.h"  
  3. #include <cxcore.h>  
  4.   
  5.   
  6. void main(int argc,char **argv)  
  7. {  
  8.     IplImage *img=cvLoadImage("test.bmp",1);  
  9.     IplImage *channel_r=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);  
  10.     IplImage *channel_g=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);  
  11.     IplImage *channel_b=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);  
  12.     IplImage *img_r=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3);  
  13.     IplImage *img_g=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3);  
  14.     IplImage *img_b=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3);  
  15.   
  16.         cvSplit(img,channel_b,channel_g,channel_r,NULL);  
  17.     cvMerge(channel_b,0,0,0,img_b);  
  18.     cvMerge(0,channel_g,0,0,img_g);  
  19.     cvMerge(0,0,channel_r,0,img_r);  
  20.   
  21.     cvNamedWindow("ImageOrigin",CV_WINDOW_AUTOSIZE);  
  22.     cvNamedWindow("Image_R",CV_WINDOW_AUTOSIZE);  
  23.     cvNamedWindow("Image_G",CV_WINDOW_AUTOSIZE);  
  24.     cvNamedWindow("Image_B",CV_WINDOW_AUTOSIZE);  
  25.     cvShowImage("ImageOrigin",img);  
  26.     cvShowImage("Image_R",img_r);  
  27.     cvShowImage("Image_G",img_g);  
  28.     cvShowImage("Image_B",img_b);  
  29.   
  30.     cvSaveImage("img_red.bmp",img_r);  
  31.     cvSaveImage("img_green.bmp",img_g);  
  32.     cvSaveImage("img_blue.bmp",img_b);  
  33.   
  34.     cvWaitKey(0);  
  35.     cvReleaseImage(&img);  
  36.     cvReleaseImage(&img_r);  
  37.     cvReleaseImage(&img_g);  
  38.     cvReleaseImage(&img_b);  
  39.     cvDestroyAllWindows();  
  40. }  



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值