我有一张阿拉伯文字图片,我想裁剪并将照片贴到文字上。例如像这样如何在matlab中裁剪照片中的文字?
我怎么能做到这一点与MATLAB? 我尝试用regionprops功能和BoundingBox的财产来解决,但它没有连接部分分开,并考虑他们作为单独的对象,但我想要一个对象
我有一张阿拉伯文字图片,我想裁剪并将照片贴到文字上。例如像这样如何在matlab中裁剪照片中的文字?
我怎么能做到这一点与MATLAB? 我尝试用regionprops功能和BoundingBox的财产来解决,但它没有连接部分分开,并考虑他们作为单独的对象,但我想要一个对象
如果您已经获得了每个单独对象的边界框,则可以推导出边界框来获取它们全部。然而,只要让这些指标能够更简单高效就行。假设mask
与您的文字逻辑矩阵:
xs = any (mask);
xi = find (xs, 1, "first");
xf = finf (xs, 1, "last");
然后为y轴做同样的:
ys = any (mask, 2);
yi = find (ys, 1, "first");
yf = finf (ys, 1, "last");
为您的文字边框会是:
text = mask(yi:yf, xi:xf);
当您提供regionprops
与logical
类型的标签运行belabel
幕后,从而将其分离为其连接的组件。如果您将BW
掩码转换为uint8
或其他任何类型regionprops
将把它视为一个单一的组件,为您提供所需的边界框。
能你向我们展示你的当前代码?似乎你只需要合并(http://www.mathworks.com/matlabcentral/fileexchange/7844-geom2d/content/geom2d/geom2d/mergeBoxes.m)边界框来实现预期的结果。 – Daniel