【问题标题】:image's sub-image find and replace图像的子图像查找和替换
【发布时间】:2011-05-03 13:43:25
【问题描述】:

如何检测图像中的已知图像或图案,以便用我自己的文本替换它?

输入选项1(分别检测aaa和bbb):

输入选项2(分别检测红色值和蓝色值):

输出:

【问题讨论】:

  • 您对正在寻找的模式有什么表示?
  • 你的意思是问我是否可以选择图案是什么?是的。我将创建源图像。该分子来自另一个程序,但我将通过任何必要的方式手动标记数字的去向。

标签: algorithm image language-agnostic image-processing


【解决方案1】:

运行代码

我将使用您的选项 2 向您展示在 Mathematica 中运行的代码和结果。

首先我们读取图像

 m = Import@"C:\\imagereplace.png"  

然后我们分离通道 RGB

 ColorSeparate[m]

获取

接下来我们correlate 红色通道图像(右边的那个)带有一个盒子矩阵,只保留矩形形状。并将结果转换为黑白图像。

Binarize@ImageCorrelate[m1[[3]], BoxMatrix[3]] ;

获取全尺寸图像,但仅包含黑色矩形。

现在我们找到矩形的边缘(只是一个循环)。

有了矩形的大小和坐标,我们创建一个文本的光栅图像,对应检测到的大小,得到:

r1 = Binarize@Rasterize["My Text", RasterSize -> {jmax-jmin + 1, imax-imin + 1}, 
                                    ImageSize -> {jmax-jmin + 1, imax- imin + 1}]

现在我们用新的数据块替换数据块。获取:

我不会做蓝色通道,因为它是一样的。

HTH!!

注意:图像相关性是唯一使用的技巧。剩下的就是像往常一样的代码。 Here 你可以找到相关的基础知识。

【讨论】:

    猜你喜欢
    • 2011-09-15
    • 2013-10-08
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 2013-05-17
    • 2013-12-01
    • 1970-01-01
    相关资源
    最近更新 更多