日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

5.6 图像颜色映射

發(fā)布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5.6 图像颜色映射 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

5.6 圖像顏色映射
5.6.1 圖像灰度映射

vtkImageLuminance負(fù)責(zé)將一個RGB彩色圖像轉(zhuǎn)換為一個單組分的灰度圖像。映射公式如下:

luminance = 0.3*R + 0.59*G + 0.11*B

該公式中,R為輸入圖像的第一分量(紅色),G為第二分量(綠色),B為第三分量(藍(lán)色)。這個計算結(jié)果計算一個RGB顏色的亮度。該類的使用也比較簡單,用戶無須設(shè)置參數(shù),代碼如下:

1: vtkSmartPointer<vtkBMPReader> reader = 2: vtkSmartPointer<vtkBMPReader>::New(); 3: reader->SetFileName ( "..\\lena.bmp" ); 4: 5: vtkSmartPointer<vtkImageLuminance> luminanceFilter = 6: vtkSmartPointer<vtkImageLuminance>::New(); 7: luminanceFilter->SetInput(reader->GetOutput()); 8: luminanceFilter->Update();

上例中讀入一副RGB彩色Lena圖像,通過vtkImageLuminance轉(zhuǎn)換為灰度圖像,執(zhí)行結(jié)果如圖5.14下:

圖5.14 VTK圖像灰度映射

5.6.2 提取顏色分量

VTK中利用vtkImageExtractComponents可以方便的提取出彩色圖像的各個顏色分量,該類的使用比較簡單,只需要設(shè)置要提取的分量序號即可。下面代碼說明了怎樣提取彩色圖像的某個顏色分量。

1: vtkSmartPointer<vtkBMPReader> reader = 2: vtkSmartPointer<vtkBMPReader>::New(); 3: reader->SetFileName ( "..\\lena.bmp" ); 4: 5: vtkSmartPointer<vtkImageExtractComponents> extractRedFilter = 6: vtkSmartPointer<vtkImageExtractComponents>::New(); 7: extractRedFilter->SetInputConnection(reader->GetOutputPort()); 8: extractRedFilter->SetComponents(0); 9: extractRedFilter->Update(); 10: 11: vtkSmartPointer<vtkImageExtractComponents> extractGreenFilter = 12: vtkSmartPointer<vtkImageExtractComponents>::New(); 13: extractGreenFilter->SetInputConnection(reader->GetOutputPort()); 14: extractGreenFilter->SetComponents(1); 15: extractGreenFilter->Update(); 16: 17: vtkSmartPointer<vtkImageExtractComponents> extractBlueFilter = 18: vtkSmartPointer<vtkImageExtractComponents>::New(); 19: extractBlueFilter->SetInputConnection(reader->GetOutputPort()); 20: extractBlueFilter->SetComponents(2); 21: extractBlueFilter->Update();

代碼中定義了三個vtkImageExtractComponents對象,分別用來提取紅、綠和藍(lán)色分量圖像,函數(shù)SetComponents用來設(shè)置要提取的分量號,紅綠藍(lán)分別對應(yīng)0,1和2。設(shè)置完畢后執(zhí)行Update()即可得到每個一個分量部分。其輸出為vtkImageData,每一個顏色分量數(shù)據(jù)即是一個灰度圖像。下圖為提取一個彩色圖像三個分量圖像的結(jié)果:

圖5.15 提取VTK彩色圖像分量
5.6.3 圖像彩色映射

圖像彩色映射的原理是首先生成一個顏色查找表,然后根據(jù)圖像的一個標(biāo)量值向顏色查找表中查找對應(yīng)的顏色,并用新顏色值替代原來的像素值。VTK中vtkImageMapToColors負(fù)責(zé)圖像彩色映射,vtkLookUpTable負(fù)責(zé)生成顏色查找表。下面代碼說明了怎樣進(jìn)行彩色映射。

1: vtkSmartPointer<vtkJPEGReader> reader = 2: vtkSmartPointer<vtkJPEGReader>::New(); 3: reader->SetFileName ( "G:\\Project\\VTK\\Examples\\source\\images\\lena2.jpg" ); 4: 5: vtkSmartPointer<vtkLookupTable> colorTable = 6: vtkSmartPointer<vtkLookupTable>::New(); 7: colorTable->SetRange( 0.0, 255.0 ); 8: colorTable->SetHueRange( 0.1, 0.5 ); 9: colorTable->SetValueRange( 0.6, 1.0 ); 10: colorTable->Build(); 11: 12: vtkSmartPointer<vtkImageMapToColors> colorMap = 13: vtkSmartPointer<vtkImageMapToColors>::New(); 14: colorMap->SetInputConnection( reader->GetOutputPort() ); 15: colorMap->SetLookupTable( colorTable ); 16: colorMap->Update();

首先讀取了一個灰度圖像,然后生成vtkLookUpTable顏色查找表。構(gòu)造顏色查找表有兩種方法,一種是直接添加顏色,另一種是設(shè)置HSV顏色空間變化范圍(hue, saturation, value),然后自動生成顏色表。這里采用的是第二種方法,SetRange 設(shè)置要映射的標(biāo)量數(shù)據(jù)的范圍;SetHueRange設(shè)置HSV顏色空間的Hue值范圍,最大范圍為[0,1]; SetValueRange設(shè)置HSV顏色空間的Value范圍,最大范圍為[0, 1];設(shè)置完后,調(diào)用Build()來生成顏色查找表。接下來定義vtkImageMapToColors對象, SetLookupTable()設(shè)置相應(yīng)的顏色查找表,執(zhí)行Update()后,其輸出為一副彩色圖像。執(zhí)行結(jié)果如下:

圖5.16 圖像彩色映射
5.6.4 顏色合成

前面我們學(xué)習(xí)了可以提取彩色的圖像的各個顏色分量,那么我們同樣也可以將灰度圖像合并成為一個彩色圖像。VTK中提供vtkImageAppendComponents類來合成彩色圖像,其輸入需要提供三個灰度圖像。下面我們來看一個實例。

1: vtkSmartPointer<vtkImageCanvasSource2D> red = 2: vtkSmartPointer<vtkImageCanvasSource2D>::New(); 3: red->SetScalarTypeToUnsignedChar(); 4: red->SetNumberOfScalarComponents(1); 5: red->SetExtent(0, 100, 0, 100, 0, 0); 6: red->SetDrawColor(0, 0, 0, 0); 7: red->FillBox(0,100,0,100); 8: red->SetDrawColor(255, 0, 0, 0); 9: red->FillBox(20,40,20,40); 10: red->Update(); 11: 12: vtkSmartPointer<vtkImageCanvasSource2D> green = 13: vtkSmartPointer<vtkImageCanvasSource2D>::New(); 14: green->SetScalarTypeToUnsignedChar(); 15: green->SetNumberOfScalarComponents(1); 16: green->SetExtent(0, 100, 0, 100, 0, 0); 17: green->SetDrawColor(0, 0, 0, 0); 18: green->FillBox(0,100,0,100); 19: green->SetDrawColor(255, 0, 0, 0); 20: green->FillBox(30,50,30,50); 21: green->Update(); 22: 23: vtkSmartPointer<vtkImageCanvasSource2D> blue = 24: vtkSmartPointer<vtkImageCanvasSource2D>::New(); 25: blue->SetScalarTypeToUnsignedChar(); 26: blue->SetNumberOfScalarComponents(1); 27: blue->SetExtent(0, 100, 0, 100, 0, 0); 28: blue->SetDrawColor(0, 0, 0, 0); 29: blue->FillBox(0,100,0,100); 30: blue->SetDrawColor(255, 0, 0, 0); 31: blue->FillBox(40,60,40,60); 32: blue->Update(); 33: 34: vtkSmartPointer<vtkImageAppendComponents> appendFilter = 35: vtkSmartPointer<vtkImageAppendComponents>::New(); 36: appendFilter->SetInputConnection(0, red->GetOutputPort()); 37: appendFilter->AddInputConnection(0, green->GetOutputPort()); 38: appendFilter->AddInputConnection(0, blue->GetOutputPort()); 39: appendFilter->Update();

上面代碼中利用vtkImageCanvasSource2D定義了3個二值圖像,每個圖像中繪制了一個白色矩形,并且三個矩形有部分重疊,然后定義vtkImageAppendComponents對象,并將三個圖像設(shè)置為vtkImageAppendComponents對象的輸入來合成圖像。合成的效果為三個圖像中對應(yīng)的三個像素點像素值合成為輸出圖像的RGB像素值,如三個圖像中第100個像素的像素值分別為,255,0和0,那么該點在輸出圖像中的像素值為(255, 0, 0),顯示為紅色。本例的執(zhí)行效果如下:

圖5.17 顏色合成

==========歡迎轉(zhuǎn)載,轉(zhuǎn)載時請保留該聲明信息==========
版權(quán)歸@東靈工作室所有,更多信息請訪問東靈工作室

教程系列導(dǎo)航:http://blog.csdn.net/www_doling_net/article/details/8763686

總結(jié)

以上是生活随笔為你收集整理的5.6 图像颜色映射的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色三级三级三级三级 | 国内成人自拍 | 亚洲成人av影片 | 欧美在线亚洲 | caoporn人人| 国产精品69久久久 | 日本黄色片. | 成人久久久精品乱码一区二区三区 | 中文字幕免费在线看线人动作大片 | 韩国色网| 欧美另类亚洲 | av影片在线看 | 欧美影视一区二区三区 | 亲嘴扒胸摸屁股激烈网站 | 美女久久 | 欧美一区二区三区成人精品 | 久久肉 | 一级片aaaaa| 欧美一区二区在线视频 | 亚洲精品成人区在线观看 | 狠狠干亚洲色图 | 一级片免费在线观看 | va视频在线观看 | 黄色激情网址 | 麻豆tv在线| 成人国产精品免费 | 欧美午夜视频在线观看 | 久久精品视频在线免费观看 | 国产一区二区三区视频播放 | 四虎视频国产精品免费 | 日本大片黄| 国产18在线 | 精品自拍偷拍视频 | 国产97超碰 | 久久婷婷色综合 | 久久久wwww | 日本中文字幕高清 | 色婷婷aⅴ一区二区三区 | 久操福利视频 | 美利坚合众国av | 精品国产一区二区三区久久久蜜月 | 精精国产xxxx视频在线播放 | 亲子乱一区二区三区 | 瑟瑟久久 | 国产原创视频 | 天堂va蜜桃一区二区三区漫画版 | 夜夜躁狠狠躁 | av在线导航| 狠狠干少妇 | 黑人极品videos精品欧美裸 | 欧美在线免费观看视频 | 日韩欧美三级在线观看 | 影音先锋成人网 | 国产精品8888 | xxxxwww国产| 国产女人18毛片 | 国产精品中文在线 | 欧洲精品一区 | 日韩手机在线视频 | 性xxxxxxxxx| 日韩123| 亚洲国产中文字幕在线 | 一区二区三区啪啪啪 | 美女被到爽高潮视频 | 亚洲人视频| 人人澡人人草 | 国产欧美日韩免费 | 自拍视频国产 | 污污网站在线播放 | 羞羞在线观看 | 男女在线观看视频 | 51吃瓜网今日 | 三级视频网址 | 午夜神马影院 | 国产熟妇搡bbbb搡bbbb | 亚洲欧美日韩国产综合 | 婷婷五月综合缴情在线视频 | 国产精品怡红院 | 午夜小影院 | 精品无码人妻一区二区三区 | 日韩一级二级视频 | 日本熟伦人妇xxxx | 亚洲美女网站 | 日韩福利一区二区三区 | 午夜影院在线免费观看 | 一区二区在线观看免费 | 日韩精品中文在线 | 国产精品一区二区三区久久久 | 欧美韩国日本一区 | 久久久久亚洲av片无码 | 超碰免费在 | 精品久久久久久 | 久草婷婷 | 色哟哟在线播放 | 妺妺窝人体色www婷婷 | 日韩视频 中文字幕 | 在线观看亚洲精品视频 | 在线看国产视频 | 91色爱|