java - 使用 imagemagick 检测轮廓

标签 java image imagemagick

我正在尝试检测图像中的矩形,我知道这可以使用 OpenCv,但我正在考虑使用 ImageMagick。
问题是,是否可以使用 ImageMagick 来做到这一点?我想在 ImageMagick 中从 OpenCV 中找到等效的 findContours 函数,但找不到?

enter image description here

最佳答案

这是一个不完全强大的版本,可以满足我对 simply connected regions 的需求。 。它利用了以下事实:轮廓所包围的区域没有孔,并且没有区域与坐标 0,0 接触。两者都不太可能出现在我的申请中,因此我能够利用这些事实来建立背景。我还可以利用我预先知道轮廓的颜色是什么,我已经用 #ContourColor

表示了这一点
convert inputImage.jpg -fill black         +opaque  #ContourColor
                       -fill blue          -draw    "color 0,0 floodfill"
                       -fill #ContourColor -opaque  black
                       -fill white         -opaque  #ContourColor
                       -fill black         -opaque  blue
                       outputImage.jpg

这是每个步骤的分割...

  1. Fill everything not ContourColor as black
  2. Fill background as blue, assuming no simply connected object touches top left pixel 0,0
  3. Fill all black interiors as ContourColor to fill contours
  4. Replace ContourColor for White to establish foreground
  5. Replace blue background as black to establish background

对于 ImageMagick 来说,实现与 OpenCV 相同的轮廓功能会非常有用,但我和你处境相同,我只是在寻找一个简单的工具来梳理出我碰巧手边的一些区域。绘图并希望在一些图像处理回归测试中使用。我不想编写一个完整的应用程序来进行这些分割比较,并希望我可以通过编写一些 ImageMagick 魔法来获得!

关于java - 使用 imagemagick 检测轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23849364/

相关文章:

css - 如何在我的 wordpress 网站上居中图片库

css - IE CSS 错误 : IMG original height affecting parent height

Imagemagick 裁剪透明图像以 mask

java - Java中工厂类的用途

java - 为什么synchronized关键字不是每次都创建monitor enter

java InputMismatchException 从文件中读取

c# - 我们可以以编程方式比较具有相同分辨率的不同图像吗?

java - 创建新函数而不是重写paintComponent

php - 图像(SQL Server)和longblob(MySQL)有什么区别?

ubuntu - 找不到 graphicsmagick ......但它已安装?