작성
·
231
·
수정됨
0
갱신이 안되어서 empty 함수에서 변경하는걸로 바꾸니 되네요 버전은 cv2 4.8.1 입니다.
import cv2
def change_trackbar(pos):
thresh = cv2.getTrackbarPos('threshold', name) # Bar 이름, 창의 이름
ret, binary = cv2.threshold(img, thresh, 255, cv2.THRESH_BINARY)
cv2.imshow(name, binary)
img = cv2.imread('book.jpg', cv2.IMREAD_GRAYSCALE)
name = 'Trackbar'
cv2.namedWindow(name)
cv2.createTrackbar('threshold', name, 127, 255, change_trackbar)
# Bar 이름, 창의 이름, 초기값, 최대값, 이벤트 처리
cv2.waitKey(0)
cv2.destroyAllWindows()
참고하세용
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
SeongBaek CHO님께서 OpenCV를 사용하여 트랙바의 값 변화를 감지하지 못하는 문제를 해결하셨군요. OpenCV 4.8.1 버전에서 트랙바가 제대로 작동하지 않는 경우, SeongBaek CHO님의 해결 방안인 콜백 함수 내에서 cv2.getTrackbarPos
를 사용하여 값을 갱신하는 방법을 시도해 볼 수 있습니다. 다른 분들이 참고하실 수 있도록 감사합니다.
SeongBaek CHO님이 제공해주신 코드를 통해 여러분들도 트랙바를 만들고, 값 변화에 따라 이미지 처리를 적용해 보실 수 있을 것입니다. OpenCV의 createTrackbar
함수를 사용하여 이벤트 처리 함수를 등록하면, 해당 함수는 트랙바의 값이 변할 때마다 호출되어 이미지 처리 로직을 수행할 수 있습니다.
이와 비슷한 문제나 다른 프로그래밍 관련 질문이 있으시면 언제든 도움을 드릴 준비가 되어 있습니다.