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);