久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【OpenCV】圖像的通道分離

 學海無涯GL 2013-12-02

分離圖像通道采用函數(shù)cvSplit,。

 

函數(shù)原型:void cvSplit(const CvArr* src, CvArr* dst0, CvArr* dst1, CvArr* dst2, CvArr* dst3)

分離出來的順序是逆序的,,這個要注意,。

  1. cvSplit(pImg,bImg,gImg,rImg,0);  


分離出來的是單通道的圖,顯示出來是這樣的:

 

通過cvMerge合并通道實現(xiàn)彩色圖像的顯示,,并且也是按照BGR的順序來輸入的,。

函數(shù)原型:void cvMerge(const CvArr* src0, const CvArr* src1, const CvArr* src2, const CvArr* src3, CvArr* dst)

這里有個小問題,假如說代碼是這樣的:

  1.     cvMerge(bImg,0,0,0,pImg1);  
  2.     cvMerge(0,gImg,0,0,pImg2);  
  3.     cvMerge(0,0,rImg,0,pImg3);  

顯示出來的圖像是這樣的:

Blue通道Green通道Red通道

再對通道進行分離的結果是這樣的:

以Blue通道的為例

Blue通道分離的灰度圖Green通道的灰度圖Green通道的灰度圖

照理說其他通道的值應該為0的才對,,也就是說應該顯示為黑色,,為灰色意味著灰度值不為0。為什么會這樣,?具體的原因要看源碼了,,估計是當通道指針為0的時候,該通道會附一個值,,但是剛剛用printf試了下輸出是0沒錯,。這下子困惑了。暫時不管他先,。

我們在通道賦值1來代替0試試看:

  1. for(int i=0;i<pTem->nChannels;i++)  
  2.  {  
  3.      value.val[0]=0x1;  
  4.      //value.val[1]=0x1;   
  5.      //value.val[2]=0x1;   
  6.  }  
  7.  for(int i=0;i<pTem->height;i++)  
  8.  {  
  9.      for(int j=0;j<pTem->width;j++)  
  10.      {  
  11.          cvSet2D(pTem,i,j,value);  
  12.      }  
  13.  }  


這樣輸出的結果就成了這:

Red通道Green通道Blue通道

猴哥終于被分離了大笑

 

源代碼:

  1. #include "stdafx.h"   
  2. #include <opencv2/opencv.hpp>   
  3. int main()  
  4. {  
  5.   
  6.     IplImage* pImg;  
  7.     IplImage *pImg1,*pImg2,*pImg3;  
  8.     IplImage *rImg,*bImg,*gImg;  
  9.     IplImage *pTem;  
  10.     CvScalar value;  
  11.   
  12.     pImg=cvLoadImage("Baboon.jpg",CV_LOAD_IMAGE_COLOR);  
  13.   
  14.     pTem=cvCreateImage(cvSize(pImg->width,pImg->height),pImg->depth,1);  
  15.   
  16.     for(int i=0;i<pTem->nChannels;i++)  
  17.     {  
  18.         value.val[0]=0x1;  
  19.         //value.val[1]=0x1;   
  20.         //value.val[2]=0x1;   
  21.     }  
  22.     for(int i=0;i<pTem->height;i++)  
  23.     {  
  24.         for(int j=0;j<pTem->width;j++)  
  25.         {  
  26.             cvSet2D(pTem,i,j,value);  
  27.         }  
  28.     }  
  29.     cvNamedWindow("1",CV_WINDOW_AUTOSIZE);  
  30.   
  31.     cvNamedWindow("2",CV_WINDOW_AUTOSIZE);  
  32.     cvNamedWindow("3",CV_WINDOW_AUTOSIZE);  
  33.     cvNamedWindow("4",CV_WINDOW_AUTOSIZE);  
  34.     cvNamedWindow("5",CV_WINDOW_AUTOSIZE);  
  35.       
  36.     cvShowImage("1",pImg);  
  37.   
  38.     rImg=cvCreateImage(cvSize(pImg->width,pImg->height),pImg->depth,1);  
  39.     bImg=cvCreateImage(cvSize(pImg->width,pImg->height),pImg->depth,1);  
  40.     gImg=cvCreateImage(cvSize(pImg->width,pImg->height),pImg->depth,1);  
  41.   
  42.     pImg1=cvCreateImage(cvSize(pImg->width,pImg->height),pImg->depth,3);  
  43.     pImg2=cvCreateImage(cvSize(pImg->width,pImg->height),pImg->depth,3);  
  44.     pImg3=cvCreateImage(cvSize(pImg->width,pImg->height),pImg->depth,3);  
  45.   
  46.     cvSplit(pImg,bImg,gImg,rImg,0);  
  47.       
  48.     cvMerge(bImg,pTem,pTem,0,pImg1);  
  49.       
  50.     cvMerge(pTem,gImg,pTem,0,pImg2);  
  51.     cvMerge(pTem,pTem,rImg,0,pImg3);  
  52.       
  53.     /* 
  54.     cvMerge(bImg,0,0,0,pImg1); 
  55.     cvMerge(0,gImg,0,0,pImg2); 
  56.     cvMerge(0,0,rImg,0,pImg3); 
  57.     */  
  58.   
  59.     cvSplit(pImg1,bImg,gImg,rImg,0);  
  60.     printf("%lf",gImg->imageData[0]);  
  61.   
  62.     cvNamedWindow("6",CV_WINDOW_AUTOSIZE);  
  63.     cvNamedWindow("7",CV_WINDOW_AUTOSIZE);  
  64.     cvNamedWindow("8",CV_WINDOW_AUTOSIZE);  
  65.       
  66.     //cvShowImage("6",pImg1);   
  67.   
  68.     cvShowImage("2",rImg);  
  69.     cvShowImage("3",bImg);  
  70.     cvShowImage("4",gImg);  
  71.     cvShowImage("5",pTem);  
  72.     cvShowImage("6",pImg1);  
  73.     cvShowImage("7",pImg2);  
  74.     cvShowImage("8",pImg3);  
  75.   
  76.     cvWaitKey(0);  
  77. }  


 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多