圖像處理之生成ColorBar


1 colorBar介紹

    colorBar主要是指一些圖像處理中使用的常見純色或者漸變色條。colorBar用途可作為測試樣圖來驗證某些圖像算法的效果,從而避免圖像內容或者硬件對圖像的干擾,使圖像算法能夠達到預期效果。colorBar常見類型如下:

    (1) 純色圖像

   

    (2) 水平4條彩色條紋

   

    (3) 垂直4條彩色條紋

   

    (4) 垂直8條彩色條紋

   

    (5) 純色背景上純色目標

   

2 colorBar生成實現源碼(以漸變條為例)

 1 /* 
 2 文件:  ColorBar.h 
 3 功能:  繪制顏色漸變的條形Bar 
 4 */  
 5 enum {GRAY=0,RED=1,GREEN=2,BLUE=3};  
 6 class CColorBar    
 7 {  
 8 public:  
 9     CColorBar();  
10     virtual ~CColorBar();  
11     void SetColorMode(int mode);  
12     void DrawColorBar(CRect &client,CClientDC &dc);  
13 private:  
14     UINT m_mode;  
15 };
 1 /* 
 2 文件:  ColorBar.cpp 
 3 功能:  繪制顏色漸變的條形Bar 
 4 */  
 5 CColorBar::CColorBar()  
 6 {  
 7     m_mode=GRAY;  
 8 }  
 9   
10 CColorBar::~CColorBar()  
11 {  
12   
13 }  
14   
15 void CColorBar::SetColorMode(int mode)  
16 {  
17     m_mode=mode;  
18 }  
19   
20 void CColorBar::DrawColorBar(CRect &client,CClientDC &dc)  
21 {  
22     CRect    m_tab;  
23     int      N=255;  
24     COLORREF rgb;  
25     double   dh=(double) client.Height()/N;  
26     CBrush *pBrush=NULL;      
27     dc.Rectangle(client);  
28     for(int i=0;i<N;i++)  
29     {  
30         m_tab.left =client.left;  
31         m_tab.right =client.right;  
32         m_tab.bottom =client.bottom -i*dh;  
33         m_tab.top =m_tab.bottom -dh;  
34           
35         switch(m_mode)  
36         {  
37         case GRAY:  
38             rgb=RGB(i,i,i);  
39             break;  
40         case RED:  
41             rgb=RGB(i,0,0,);  
42             break;  
43         case GREEN:  
44             rgb=RGB(0,i,0);  
45             break;  
46         case BLUE:  
47             rgb=RGB(0,0,i);  
48             break;  
49         default:  
50             break;  
51         }  
52           
53         pBrush=new CBrush(rgb);  
54         dc.FillRect(m_tab,pBrush);  
55   
56     }  
57   
58     delete pBrush;  
59     pBrush=NULL;  
60 }
1 CColorBar bar;  
2 CClientDC dc(this);  
3 CRect     m_bar(100,10,150,300);  
4 bar.SetColorMode(RED);  
5 bar.DrawColorBar(m_bar,dc);

       運行后輸出如下:

      

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM