如何观察cv2.erode()的中间过程?

问题描述 投票:0回答:1

当我使用不同的

cv2.erode()
值应用
kernel
时,我一直在观察结果。下面的代码中是
(3, 3)
,但是改成了
(1, 3)
或者
(5, 1)
等各种方式。进行此观察的原因是为了了解
kernel

理论上我是这么理解的。通过实践,我可以看到我得到了什么样的结果。但我想更深入一点。我想看看每次

kernel
所针对的像素发生变化时会发生什么。如果您存储了数千张图像也没关系。

如何观察

cv2.erode()
的中间过程?我的要求是不是太多了?

image = cv2.imread(file_path, cv2.IMREAD_GRAYSCALE)
_, thresholded_image = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)
inverted_image = cv2.bitwise_not(thresholded_image)

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
eroded_image = cv2.erode(inverted_image, kernel, iterations=5)

cv2.imshow('image', eroded_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
python opencv
1个回答
0
投票

当您从 Python 调用

cv2.erode
时,它最终会转化为对
cv::erode
的 C++ API 调用。

此API不支持检查流程的中间结果。

你可以做你想做的事情的唯一方法是在更改源代码以允许检查中间结果之后从源代码编译opencv(因为它是开源的)。

© www.soinside.com 2019 - 2024. All rights reserved.