如何根据暗区/噪点裁剪图像?

时间:2015-10-06 18:21:55

标签: c# image image-processing crop noise-reduction

假设我有这样的图像

http://imgur.com/hbDd0rA

我希望能够找到图像中的暗区,然后裁剪图像,这样我就可以得到一个没有任何暗区的新矩形图像(在原始图像的角落中看到)。 / p>

最终图像必须看起来像这样

http://imgur.com/BdipOET

现在的挑战是暗区不是全黑像素,也不是全部是相同的颜色。如果你得到我想说的话,那就是黑暗,略深的黑暗,稍微浅一点的黑暗。

想知道C#中是否可行。

1 个答案:

答案 0 :(得分:0)

ImageProcessor library有一个名为EntropyCrop的函数可能是合适的。您可以使用threshold参数来调整结果。

如果这不起作用,你可以这样做:

  • 创建一个确定像素是否暗的函数 (基于可调节的强度阈值)
  • 添加非暗区像素的所有矢量(坐标)。
  • 将结果除以所述像素的数量 这将为您提供光盘/对象的中心。

  • 如果事先知道对象的大小,只需使用以该点为中心的合适大小的矩形进行裁剪。

  • 否则从一个非常小的居中裁剪矩形开始,并计算其中暗像素的百分比。
  • 逐渐放大矩形,直到百分比增长到可调阈值以上。