在OpenCV教程的Canny边缘检测这一节的课后练习中,提出编写一个小应用研究滞后阈值对检测结果的影响,这里贴出我做的小应用。
import numpy as np
import cv2 as cv
def nothing(x):
pass
# 读取图片,创建一个窗口
img = cv.imread('image\lena512.bmp',0)
cv.namedWindow('Canny edge')
# 创建两个跟踪条用于修改滞后阈值
cv.createTrackbar('minVal','Canny edge',125,255,nothing)
minVal = cv.getTrackbarPos('minVal','Canny edge')
cv.createTrackbar('maxVal','Canny edge',minVal,255,nothing)
# 创建开关功能
switch = '0 : OFF \n1 : ON'
cv.createTrackbar(switch, 'Canny edge',0,1,nothing)
while(1):
k = cv.waitKey(1) & 0xFF
if k == 27:
break
# 读取跟踪条表示的滞后阈值
minVal = cv.getTrackbarPos('minVal','Canny edge')
maxVal = cv.getTrackbarPos('maxVal','Canny edge')
s = cv.getTrackbarPos(switch,'Canny edge')
if s == 0:
cv.imsho