我的图像非常扭曲和弄脏了

是否可以去除这种污渍?图像修复可以帮助吗?

请帮助

编辑:另一幅图像



应用各向异性扩散并表示后带有imagesc(MATLAB)的图像



我尝试了绘画,但是结果不够好



>无论如何,我可以改善此输出吗?

评论

那就是图像处理是关于使计算机为我做的事情

在图像中,污点显然在单独的焦平面上。因此,我将考虑如何通过聚焦平面分解图像。进行一点修补,就应该完成:)

@vini您有几张图像还是仅此一张?我可以通过手动创建蒙版和修复来获得“良好”的效果。这是您感兴趣的解决方案吗?

你不能只是清洁窗户?

图像似乎被双重曝光和染色。是这样吗?

#1 楼

但是,这并不是一个完整而明了的答案,我为您提供了至少一种可以与之抗衡的方法。 (很高兴知道您是否有结果)。

看看这些问题:

从图像中去除眩光如何去除图像中的眩光和亮度(图像预处理)?

他们本质上是在尝试解决相同的问题。

问题有两个部分,

a。识别斑点/污点
b。用本来可以代替堵塞的污渍代替污渍。

问题的本质是试图解决确切的问题(在某种意义上)。

这不是小事。但是,在这两个问题中,都有一些可以利用的独特模式。


在所有情况下,需要去除的叠加元素在这里都称为(污点,眩光,亮点),覆盖层,具有独特而独特的色相/颜色,从而使其与众不同常规对象/场景。
在大多数情况下,叠加层的这种色调/颜色会淡入常规场景。实际产生的颜色确实发生了变化-但是,最好将覆盖层建模为单一强度和颜色,并依次降低透明度。因此,您可以说结果像素
$$ P [x,y] =(1- \ alpha [x ,y]] * S [x,y] + \ alpha [x,y] * OverlayHue $$
$$ \ tilde S [x,y] =(P [x,y]-OverlayHue * \ tilde \ alpha [x,y])/(1- \波浪线\ alpha [x,y])$$
其中$ P [x,y] $是观察到的图像,而$ S [x,y] $是所需的无遮挡图像。
请注意,alpha可以随像素任意变化,但是叠加层的$ OverlayHue $被认为几乎是恒定的。 $ \ tilde S [x,y] $和$ \ tilde \ alpha [x,y] $是您的算法对相应数量的估计值。
可以通过手动分割污点或Flash明显占主导地位的像素区域来独立估算OverlayHue值。
您可以假定\ alpha [x,y]在所有通道(即R,G,B)上都是一致的。因此,您可以按以下方式识别各个组件:
$$ \ tilde S_R [x,y] =(P_R [x,y]-OverlayHue_R * \ tilde \ alpha [x,y])/(1- \ tilde \ alpha [x,y])$$
$$ \波浪线S_G [x,y] =(P_G [x,y]-OverueHue_G * \波浪线\ alpha [x,y])/(1- \波浪线\ alpha [x,y])$$
$$ \波浪线S_B [x,y] =(P_B [x,y]-OverueHue_B * \波浪线\ alpha [x,y])/(1- \ tilde \ alpha [x,y])$$
您会看到,当$ \ alpha $接近1时,则意味着覆盖完全遮挡了场景,因此对$ \ tilde S $的估计都不会很好,您应该避免这种情况,并保留一些参考值以随着时间的推移对其进行迭代。
不幸的是,您仍然拥有比等式更多的变量,这是由于像素的物理性质所致。给定的颜色可能是由于像素本身的属性,还是由于污点/眩光导致的。最好的选择是,从确定的像素开始,其中您知道$ \ alpha $为1,然后逐渐降低对$ \ alpha $的猜测,并逐渐减小。经过一些迭代,您可以找到模式。
此外,为了最终估计纯黑点,您还可以对邻域像素(即$ \ tilde S [x,y] $以及$ \ tilde \ alpha [x,y] $ )。

这可能不是完美的解决方案,但可能比最明显的效果要好于像素级限幅或饱和度等。我恳请您最终尝试一下并向我们展示结果(我的工作台目前混乱不堪,所以我做不到!)

希望这会有所帮助。