Я только начал использовать OpenCV, я использовал функцию определения угла Харриса.Я написал скрипт для поиска черных краев на картинке.
Я боролся с реализацией ползунка для динамической настройки порога изображения.
В данный момент ползунок устанавливает значение только до загрузки изображения.Он не обновляется при изменении значения с помощью ползунка.
Как мне заставить слайдер постоянно обновлять изображение при его перемещении?
Заранее спасибо
from threading import Thread
import time
import numpy as np
import cv2
from matplotlib import pyplot as plt
import tkinter
import sys
slideVal =1
def showVal(value):
global slideVal
value = int(value)
print (type(value))
slideVal = value
def harrisCorn():
time.sleep(3)
print(slideVal)
print ("the current slider value is: ",slideVal)
img = cv2.imread('rawGun.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
gray = np.float32(gray)
#Changeing the value's in this function with : slideVal
dst = cv2.cornerHarris(gray,slideVal,3,0.04)
#result is dilated for marking the corners, not important
dst = cv2.dilate(dst,None)
# Threshold for an optimal value, it may vary depending on the image.
img[dst>0.01*dst.max()]=[0,0,255]
imgSize = cv2.resize(img,(1000,1000))
cv2.imshow('dst', imgSize)
if cv2.waitKey(0) & 0xff:
cv2.destroyAllWindows()
def slider():
root = tkinter.Tk()
s = tkinter.Scale(orient='horizontal', from_=1, to=225, command=showVal)
s.pack()
root.mainloop()
if __name__ == '__main__':
Thread(target = slider).start()
time.sleep(3)
Thread(target = harrisCorn).start()