我一直在编写文本检测代码,我正在使用二进制映射作为掩码来处理图像。在我获得候选文本区域后,我在图像上应用bwconncomp
函数后,在其上应用蒙版以获取这些区域的位置。
现在我已经创建了一个循环来丢弃不满足某些“子句”的区域。如果没有,我将该区域中的所有像素都设置为0(image(cc.PixelIdxList{region})=0
),并将二进制映射(map(cc.PixelIdxList{region})=0
)中的相同内容放在一起。
当我在进入循环之前绘制地图和图像时,他们会计算,但在它之后它们没有。当我在循环之后绘制图像时,它显示它完美地擦除了该区域,但是地图不是这种情况。有时会留下一些区域内的像素。
所以我的猜测是:bwconncomp
给图像中的像素的像素索引与地图中的像素不完全相同,这就是为什么地图中的某些像素在它们应该被删除时不被删除的原因。我对吗?或者我应该在其他地方寻找?
答案 0 :(得分:0)
我使用灰度图像来计算连通分量而不是二进制映射,所以当其中一些区域的像素值为0时,bwconncomp
函数会计算它们,因为它们不属于区域。那么当我擦除一个区域时,这些像素保持在值0,而地图上的像素没有被擦除。