Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-14, 20:46   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 删除照片中的纸张纹理图案

我已经用纸张纹理图案扫描了一张旧照片,并且我想在不降低图像质量的情况下尽可能地去除纹理。有没有办法,可能使用MATLAB中的“图像处理”工具箱?

我尝试应用FFT转换(使用Photoshop plugin ),但是找不到任何清晰的白色斑点。这种方法的模式可能不是很规则吗?

您可以在下面看到示例。如果您需要完整图像,可以将其上传到某个地方。



回答:

不幸的是,您几乎陷入了空间领域,因为该模式的重复性不足以使傅立叶分析可用。

正如@Jonas和@michid指出的那样,过滤将帮助您解决此类问题。使用过滤时,您要在要保留的细节量与要去除的噪声量(或不需要的图像成分)之间进行权衡。例如,@ Jonas使用的中值滤镜可以完全消除纸张纹理(甚至是图像底部边缘附近的圆形划痕),但也可以消除眼睛,头发,脸部和背景内的所有纹理(尽管我们并不是真的)非常关心背景,这才是最重要的前景)。您还会看到图像对比度略有下降,这通常是不希望的。这使图像具有人为外观。

这是我处理此问题的方法:
  • 检测纸张纹理图案:
    • 对图像应用高斯模糊(使用大内核确保所有纸张纹理信息都被破坏了)
    • 计算模糊和原始图像之间的图像差异
    • 编辑2将高斯模糊应用于差异图像(使用小的3x3内核)
  • 使用经验确定的阈值对上述模式设置阈值。这将产生可用作遮罩的二进制图像。
  • 使用中值过滤(如@Jonas所述) 替换图像中与纸张图案相对应的部分。
纸张纹理图案(阈值之前):



您希望在上面的图像中显示的图像信息很少。您会发现您可以非常微弱地辨认出脸部的边缘(虽然不好,但这是我有时间的最佳选择)。您还希望此纸张纹理图像尽可能均匀(以便阈值化在整个图像上得到相等的结果)。同样,上图的右侧稍暗,这意味着很难将其阈值化。

最终图片:



结果并不完美,但与简单的滤波方法相比,它已完全消除了高度可见的纸张纹理图案,同时保留了更多的高频内容。

编辑

填充区域通常是单色的,因此如果您仔细观察图像会显得有些突出。您也可以尝试向填充区域添加一些低强度零均值高斯噪声,以使它们看起来更逼真。您必须选择噪声方差以匹配背景。凭经验确定它可能已经足够了。

这是添加了噪点的处理后图像:



请注意,除去纸样的部分很难看清,因为增加的高斯噪声掩盖了它们。我对整个图像使用了相同的高斯分布,但是如果您想变得更复杂,可以对面部,背景等使用不同的分布。



更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 19:49


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.