背景
匹配到ROI外面去了
中心恰好在roi有效区域内!(粉色是ROI区域)
网上查到的资料!
PaintRegion改变外部环境
//HOperatorSet.ReduceDomain(image, ho_ProductRegionAll, out imgReduced);
//替换为:
HObject allDomain, RegionDifference1;
HOperatorSet.GetDomain(image, out allDomain);
HOperatorSet.Difference(allDomain, ho_ProductRegionAll, out RegionDifference1);
DebugShow(RegionDifference1, "blue");
HOperatorSet.PaintRegion(RegionDifference1, image, out imgReduced, 255, "fill");
也是就是将我选取的的Region(ho_ProductRegionAll)之外的部分都涂成白色(因为我的产品是黑色的)这样即使中心恰好在roi有效区域内,也匹配不到了,因为外部的环境已经别改变了!
这样基本就搞定了。
PaintRegion 报错
但是如果你的图像是多个通道的就会报错:
PaintRegion 报错,因为图片是三通道的,PaintRegion只能填充单通道的:
所以需要先将图片分解:
HObject RedImage, GreenImage, BlueImage;
HOperatorSet.Decompose3(roivm.CurImg, out RedImage, out GreenImage, out BlueImage);
然后使用一个通道集合,或者三个通道分别PaintRegion。然后再合并。