【OpenCV-Python】:Canny边缘检测的图像化与数值化直观显示

✨博客主页:王乐予🎈
✨年轻人要:Living for the moment(活在当下)!💪
🏆推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法

首先给出Canny边缘检测的代码

import cv2

img = cv2.imread('C:\\Users\\Wxr\\Desktop\\21.jpg', cv2.IMREAD_GRAYSCALE)
c1 = cv2.Canny(img, 32, 128)
r1 = cv2.imshow("result", c1)
cv2.waitKey()
cv2.imwrite('C:\\Users\\Wxr\\Desktop\\r1.jpg', c1)

下图左侧是原图,右侧是边缘检测后的图像。
在这里插入图片描述

如果在做图像增强的任务,例如低照度图像增强、水下图像增强等,评价增强图像的质量指标除了PSNR、SSIM、MSE、图像均值、图像标准差之外,我们还可以使用边缘检测的方法,来比较原图和增强图像的边缘检测结果。

PSNR、SSIM、MSE具体实现方式见:

基于Python——图像PSNR、SSIM、MSE计算

对于边缘检测的结果,我们可以通过图像直观感受白色条纹,也可以使用数值化的方式。例如,我们可以计算图像中的白色像素的数量(边缘检测的边缘以白色表示)表征图像纹理细节质量。

下面给出如何计算边缘检测后的图像白色像素值数量的python程序

import cv2
import numpy as np


img = cv2.imread('C:\\Users\\Wxr\\Desktop\\1.jpg', 0)	# 读入边缘检测后的图像
print(img.shape)
h, w = img.shape
white = []			# 建立一个列表,用来装入白色像素
for i in range(h):		# 遍历图像行列
    for j in range(w):		
        if img[i, j] == 255:	# 寻找白色像素值(255)的位置
            white.append(img[i, j])		# 位置信息追加进列表

print(len(white))			# 列表长度即为白色像素数量

对于上图中的边缘检测图计算其白色像素值信息情况如下:

img.shape:(128, 128)
len(white)1945
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王乐予

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值