我正在研究图像模糊功能。为了实现这一点,我将 opencv 与 JAVA 结合使用。但是图片的模糊率是根据上传图片的质量而定的,也就是说如果我上传的是低质量的图片,那么它会像预期的那样模糊图像,但是如果我上传的是高质量的图片,那么它会以非常小的比例模糊图像. 如何将参数设置为该行,以便所有图像的模糊效果相同(意味着它与上传的图像质量无关)
Imgproc.GaussianBlur(source, destination,new Size(39,39),0);
问问题
719 次
2 回答
1
最近,即使我一直在做一些非常相似的事情。
在您的情况下,您正在使用 39*39 的内核大小。因此,如果我假设您在使用尺寸为 500*500 的图像(源图像的宽度和高度)时获得最佳结果。
因此,在您的情况下,如果您的图像为 500,则使用 39 的内核大小(500/39=12.82 的比率)
现在,如果您增加图像大小(高分辨率图像),也尝试以相同的比例增加内核大小。
例如,现在如果您输入大小为 1000*1000 的图像,则将内核大小设为 78。
所以基本上使用动态内核大小进行模糊。
如果您可以具体说明您正在实施它的情况,您可以获得针对您的具体情况的更好的答案。
希望有帮助。别忘了点赞。
于 2016-04-27T09:23:55.317 回答
0
尝试以一致的大小转换所有图像。
示例:如果您有尺寸为 455x550 的图像,请将其转换为 300x300。同样,您有一个一致的尺寸。在应用模糊效果之前将所有图像转换为相同尺寸。
于 2016-04-30T07:11:13.260 回答