图像处理之生成ColorBar
生活随笔
收集整理的這篇文章主要介紹了
图像处理之生成ColorBar
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1 colorBar介紹
colorBar主要是指一些圖像處理中使用的常見純色或者漸變色條。colorBar用途可作為測(cè)試樣圖來(lái)驗(yàn)證某些圖像算法的效果,從而避免圖像內(nèi)容或者硬件對(duì)圖像的干擾,使圖像算法能夠達(dá)到預(yù)期效果。colorBar常見類型如下:
(1) 純色圖像
(2) 水平4條彩色條紋
(3) 垂直4條彩色條紋
(4) 垂直8條彩色條紋
(5) 純色背景上純色目標(biāo)
2 colorBar生成實(shí)現(xiàn)源碼(以漸變條為例)
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);
運(yùn)行后輸出如下:
總結(jié)
以上是生活随笔為你收集整理的图像处理之生成ColorBar的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# Redis分布式锁(RedLock
- 下一篇: 将BT转为磁力链接