zoukankan      html  css  js  c++  java
  • OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量

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

     

    原图:

    R:

    G:

    B:

     

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

     

     

    [cpp] view plaincopy在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);  

    1.   
  • 相关阅读:
    P7003 [NEERC2013]Hack Protection
    P6753 [BalticOI 2013 Day1] Ball Machine
    笛卡尔树-P2659 美丽的序列
    [省选联考 2020 A/B 卷] 冰火战士
    CF1166E The LCMs Must be Large
    线段树标记永久化模板
    zoj 2112 单点修改的主席树(树状数组套主席树)
    poj 2104 无修改主席树
    python中map的排序以及取出map中取最大最小值
    python之禅
  • 原文地址:https://www.cnblogs.com/ghostll/p/3545090.html
Copyright © 2011-2022 走看看