计算边缘占据的图像面积 - 精明的边缘检测

calculate area of an image occupied by edges - canny edge detection

刚开始使用该算法,想知道是否可以使用 Canny 边缘检测度量来计算边缘与非边缘的比率?如果不可能,还可以怎么做?

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('icon3.jpg',0)
edges = cv2.Canny(img,100,200)

plt.subplot(121),plt.imshow(img,cmap = 'gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(edges,cmap = 'gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])

plt.show()

代码的结果确实检测到边缘,但是我想计算包含边缘的图像区域

这是通过计算白色面积除以黑色面积再乘以 100 得到百分比来完成的