【问题标题】:Imagemagick remove odd pixels from the imageImagemagick 从图像中删除奇数像素
【发布时间】:2014-11-26 07:26:51
【问题描述】:

我有一个砂浆图像,它的内侧边缘有一些黑色像素。

我需要使那些黑色像素的颜色与灰色砂浆颜色相同。

看看图片的开头,我已经指出了边缘上的一些黑色像素

【问题讨论】:

  • 你指的黑色像素是什么?请标记它们。
  • 我已经更新了原始问题你可以看看。
  • 解决方案必须是实时的吗?你在哪里写代码? matlab?
  • 解决方案不必是实时的。我将这些图像保存在服务器上并在浏览器上呈现它们。需要一种 imagemagick 技术来使这些黑色像素在砂浆中变成灰色,而不会失去砂浆的纹理。

标签: image image-processing imagemagick imagemagick-convert


【解决方案1】:

一个(耗时的)解决方案是将通过以下条件的每个像素的颜色切换为灰色:

像素是连接到砂浆的组件的一部分,但不是砂浆矩形的一部分,这可以通过修改“连接组件标记”算法来实现。

进行此修改的一种方法是:

  1. 使用 Connected-component 标记算法扫描图像一次(阈值包含灰色和黑色像素)。
  2. 丢弃不包含迫击炮的每个组件(在您的情况下,这可以通过组件中的最小像素要求来实现)。
  3. 第二次扫描图像,每个固定点在一条带末端的线上并且是黑色的,将颜色切换为灰色。 这可以通过多种方式完成,一种方法是搜索线端,然后更改所有线的颜色(您可以在连接组件标记算法中标记线端以节省时间)。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 2017-09-22
    • 2019-11-30
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多