我需要提高图像质量,从低质量到高高清质量。我正在使用OpenCV库。我对GaussianBlur()、Laplacian()、转换函数、滤波函数等做了大量的实验,但我成功的方法是将图像转换成高清分辨率,并保持相同的质量。有可能这样做吗?我是否需要实现我自己的算法,还是有办法做到这一点?我真的很感激任何帮助。提前谢谢。
发布于 2016-12-16 15:00:46
我使用这个链接作为我的参考。它还有其他有趣的过滤器,你可以玩。
如果您使用的是C++:
detailEnhance(Mat src, Mat dst, float sigma_s=10, float sigma_r=0.15f)如果您正在使用python:
dst = cv2.detailEnhance(src, sigma_s=10, sigma_r=0.15)变量'sigma_s‘决定像素邻域的大小来执行滤波。
变量'sigma_r‘决定了像素邻域内的不同颜色将如何彼此平均。它的范围是:0- 1。一个较小的值意味着相似的颜色将被平均出来,而不同的颜色保持不变。
由于您正在寻找图像的清晰度,我建议您保持内核的最低限度。
下面是我为一个示例图像获得的结果:
1.原始图像:

2.锐化图像以获得较低的sigma_r值:

3.锐化图像以获得更高的sigma_r值:

有关更多信息,请查看上述链接。
发布于 2021-07-17 19:30:06
需要修正dst =cv2.细节增强(src,sigma_s=10,sigma_r=0.15)
使用内核会产生错误。
发布于 2021-08-14 14:59:12
在OpenCV中应用超级分辨率如何?可以在这里找到一篇包含更多细节的参考文章:https://learnopencv.com/super-resolution-in-opencv/
因此,基本上您需要安装Python opencv-contrib-python,以及一个工作版本的opencv-python。
对于OpenCV中的超分辨率,您可以选择不同的技术,包括EDSR、ESPCN、FSRCNN和LapSRN。Python和C++中的代码示例也包含在教程文章中,以便于参考。
https://stackoverflow.com/questions/33022578
复制相似问题