☰
使用opencv-Python进行图像锐化处理
2026/9/25 7:57:29 网站建设 项目流程

使用 函数 cv:: 执行一些拉普拉斯滤波以进行图像锐化

获得二值图像的派生()表示, 要使用函数cv::, 在其中用每个像素到最近背景像素的距离替换该像素的值, 得到相应表示。

使用 函数 cv:: 将图像中的对象与背景隔离

加载源图像并检查它是否加载没有任何问题,然后显示它:

# Load the image

这似乎并不是一个完整且清晰表意合理的句子呀, 请你检查一下输入内容, 以便我能更准确地按照要求进行改写。

code how to using , \

in to and ')

在代码中, 存在一个参数设置, 其参数名为'--input', 它具有帮助说明的属性, 该帮助说明内容是'Path to input image.', 并且这个参数当前被赋值为'cards.png'。

args = .()

src = cv.(cv..(args.input))

if src is None:

exit(0)

# Show image

cv.(' Image', src)

把背景由白色改成黑色, 鉴于如此会对稍后于运用距离变换()之际, 助力提取更优的结果。

src

np.all(src == 255, axis=2)

= 0

在那之后, 把我们的图像加以锐化这个行动, 是为了让前景对象的边缘得以呈现出锐化的样子。而我们会运用一种拉普拉斯过滤器, 它有着相当强的过滤功能, 是跟二阶导数近似值相关的那种过滤器:

锐化处理的主要目的在于突出灰度的过度部分, 因为拉普拉斯是一种微分算子, 要是所使用的定义具备负的中心系数, 那就必须把原图像减去经拉普拉斯变换后的图像, 而非加上它, 如此方能获得锐化结果。----摘自《数字图像处理(第三版)》。

现在我们将新的锐化源图像分别转换为灰度和二值图像():

# image from image

bw = cv.(, cv.)

cv.(' Image', bw)

此刻, 我们正打算于二值图像(image)之上施行距离变换操作。另外, 我们会将输出图像予以归一化处理, 以此能够对结果开展可视化以及阈值处理工作。

用法

cv.( src, , )

src:输入图像,数据类型为CV_8U的单通道图像

dst, 是输出图像, 它和输入图像有着一样的尺寸, 其数据类型是CV_8U, 同时它是单通道图像, 就是这样。

选用用来计算两个像素之间距离方式的标志, 其常见的距离度量方式, (等于横坐标差值绝对值加上纵坐标差值绝对值的街区距离), (欧几里得距离, 也就是欧式距离)。

距离变换掩码矩阵的大小方面, 参数能够选择的尺寸是这样的, 有一种尺寸是(3×3), 还有一种尺寸是(5×5)。

我们针对dist图像开展阈值处理, 接着施行一些形态学操作, 也就是膨胀, 以此从先前所述图像里提取峰值。

咱们从每一个 blob 里面, 借助 cv:: 函数, 给分水岭算法制造出一个种子, 或者说是一个标记。

最后,我们可以应用分水岭算法,并将结果可视化:

之后会继续分享技术,欢迎大家学习交流~

原文链接:

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询