当我尝试运行代码时,用于显示阈值图像的窗口不会响应。
import cv2
src = cv2.imread("C:/Users/MikePC/Pictures/LifeCam Files/2017-07-14 12-20-
19.930.jpg",0)
thresh = 255
maxValue = 0
th, dst = cv2.threshold(src, thresh, maxValue, cv2.THRESH_BINARY_INV)
cv2.imshow( "thickerblackwaveblackaxis.PNG", dst)
cv2.imwrite("thickerblackwaveblackaxis.PNG", dst)
答案 0 :(得分:1)
您的阈值为255且maxValue为0,这意味着您将遇到完全黑色的图像(请查看opencv阈值文档),您应该像我在下面的代码中那样更改这些值。除此之外,我建议您在Windows平台上使用双斜杠“\\
”,因为单斜杠用于特殊字符(例如\n
\t
等)并始终在处理之前检查您的图像是否包含任何数据:
import cv2
src = cv2.imread("C:\\Users\\MikePC\\Pictures\\LifeCam Files\\2017-07-14 12-20-19.930.jpg",0)
maxValue = 255
thresh= 0
if not src is None
th, dst = cv2.threshold(src, thresh, maxValue, cv2.THRESH_BINARY_INV)
cv2.imshow( "thickerblackwaveblackaxis.PNG", dst)
cv2.imwrite("thickerblackwaveblackaxis.PNG", dst)
cv2.waitKey(0) #it keeps the windows open forever
else
print 'Image could not be read'
正如OpenCV文档所述:函数waitKey(delay)在延迟< = 0时无限地等待键事件,或者在延迟毫秒时等待它为正。因此,此代码将保持图像窗口打开,直到您按任意键。