如何在OpenCV中锐化图像?
如何使用OpenCV锐化图像? 有许多平滑或模糊的方法,但没有我能看到的锐化。
7个解决方案
147 votes
关于反锐化掩蔽的维基百科文章中列出了一个通用程序:您使用高斯平滑滤波器并从原始图像中减去平滑后的版本(以加权方式,以便恒定区域的值保持不变)。
要获得frame的锐化版本image :(均为cv::Mat)
cv::GaussianBlur(frame, image, cv::Size(0, 0), 3);
cv::addWeighted(frame, 1.5, image, -0.5, 0, image);
您需要为自己调整参数。
还有laplacian锐化,你应该在谷歌上找到一些东西。
etarion answered 2019-08-01T17:08:09Z
28 votes
您可以尝试一个简单的内核和filter2D函数,例如 在Python中:
kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
im = cv2.filter2D(im, -1, kernel)
维基百科对内核有一个很好的概述,这里有更多的例子 - [https://en.wikipedia.org/wiki/Kernel_(image_processing)]
在图像处理中,内核,卷积矩阵或掩码是一个小矩阵。 它用于模糊,锐化,压花,边缘检测等。 这是通过在内核和图像之间进行卷积来实现的。
Brian Burns answered 2019-08-01T17:08:48Z
13 votes</