Halcon ROI透明塗抹的實現方式


Halcon ROI透明塗抹實現方式

方式一:(推薦)

HRegion mask;
hWindow.SetRgba(255, 0, 0, 100); //設置后mask將顯示為透明的紅色,第四個參數控制透明度,范圍:0~255
hWindow.DispRegion(mask);

方式二:

//將r通道設為255實現透明的效果
//這種方式在原圖像白色的地方顯示效果不明顯,原因在於三通道都是255最后將得到的白色,與原圖像顏色接近
//可將g,b通道都設為0,此時顯示清晰,但沒有透明效果
HRegion mask;
HImage hImage;
HImage multiChannelImage;
HImage img_r = hImage.PaintRegion(mask, 255.0, "fill");
HOperatorSet.Compose3(img_r, hImage, hImage, out multiChannelImage);
hWindow.DispImage(multiChannelImage);

方式三:

//利用圖像相加實現透明的效果
//這種方式對性能影響較大,不適用於塗抹ROI這個場景。但是提供了一種技巧,也許可用於其它地方
HRegion mask;
HImage hImage;
HImage r = hImage.CopyImage();
HImage g = hImage.CopyImage();
HImage b = hImage.CopyImage();
HImage multiChannelImage;
HImage img_r = hImage.PaintRegion(mask, 255.0, "fill");
HImage img_g = hImage.PaintRegion(mask, 0.0, "fill");
HImage img_b = hImage.PaintRegion(mask, 0.0, "fill");
r = r.AddImage(img_r, 0.5, 0);
g = g.AddImage(img_g, 0.5, 0);
b = b.AddImage(img_b, 0.5, 0);
HOperatorSet.Compose3(r, g, b, out multiChannelImage);
hWindow.DispImage(multiChannelImage);


免責聲明!

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



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