gpt4 book ai didi

python - 理解 cv2.threshold() 函数

转载 作者:太空宇宙 更新时间:2023-11-03 22:13:03 31 4
gpt4 key购买 nike

我运行这段代码:

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

im=cv2.imread('1.jpg')
#mask=np.zeros(img.shape[:2],np.uint8)
imgray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh=cv2.threshold(imgray,200,200,200)
countours,hierarchy=cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

cv2.drawContours(im,countours,-1,(0,255,0),3)
cv2.imshow("begueradj",im)
cv2.waitKey(0)
cv2.destroyAllWindows()

这两张图(我展示的是原图和结果图):

图片 1:

enter image description here

图片 2:

enter image description here

结果 1:

enter image description here

结果 2:

enter image description here

我的问题:

结果 1 中,threshold() 达到了我的预期。

但为什么在结果 2 中有那个绿色方 block ?根据我对threshold()函数的理解,只需要显示绿色圆圈即可。为什么是这样 ?我对这个功能有什么不理解的?

最佳答案

OpenCV 将所有白色像素视为前景,将黑色像素视为背景。绿色轮廓可视化检测到的前景。

如果你想突出黑色圆圈,你需要事先反转图像。或者,您可以使用阈值类型“THRESH_BINARY_INV”(http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html?highlight=threshold#threshold)。

关于python - 理解 cv2.threshold() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28723014/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com