首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Trackbar Python进行扩展

使用Trackbar Python进行扩展
EN

Stack Overflow用户
提问于 2019-11-14 09:52:38
回答 1查看 138关注 0票数 0

我的工作是在图像处理和我的麻烦在扩大图像与跟踪条。我可以在窗口中看到轨迹栏,但问题是它不能在图像上工作。我的意思是,当我改变轨迹栏中的扩张值时,图像并没有改变。İt正在处理阈值,ı没有问题。

代码语言:javascript
复制
def trackChaned(x):
  pass

cv2.namedWindow('Thresh')

cv2.createTrackbar("Thresh Value", "Thresh",0,255,trackChaned)
cv2.createTrackbar("Dilation Value", "Thresh", 0,50,trackChaned)
img = cv2.resize(img, (0,0), fx=0.3, fy=0.3)

while(True):
   threshValue = cv2.getTrackbarPos("Thresh Value", "Thresh")
   dilationValue = cv2.getTrackbarPos("dilation Value", "Thresh")

   ret,thresh1 = cv2.threshold(img,threshValue,255,cv2.THRESH_BINARY)
   gray = cv2.cvtColor(thresh1,cv2.COLOR_BGR2GRAY)
   ret, thresh1 = cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)

   kernal = np.ones((2,2), np.uint8)
   dilation = cv2.dilate(thresh1, kernal, iterations= dilationValue)
   cv2.imshow("threshValue",thresh1)
   if cv2.waitKey(1) == 27:
       break

cv2.destroyAllWindows()

cv2.imshow('Test', thresh1)
cv2.waitKey(0)

gray = cv2.cvtColor(thresh1,cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)

cv2.imshow('Test', thresh)
cv2.waitKey(0)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-14 10:32:11

你的代码基本上没问题。但是有两个拼写错误导致了你的问题。

首先,一定要检查你注册的名字。在while循环中,您从dilation Value获取信息,同时将跟踪栏名称设置为Dilation Value。所以你需要解决这个问题。

代码语言:javascript
复制
cv2.createTrackbar("Dilation Value", "Thresh", 0,50,trackChaned)
dilationValue = cv2.getTrackbarPos("dilation Value", "Thresh")

其次,您显示的是thresh1图像而不是dilation。所以你不会在视觉上发现任何变化。将其更改为dilation,就可以运行了。

代码语言:javascript
复制
(in while loop)
cv2.imshow("threshValue",thresh1)

当你做扩容的时候,我建议你添加第三个轨迹条来找到最合适的kernel size

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58848242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档