• 카테고리

    질문 & 답변
  • 세부 분야

    기타 (개발 · 프로그래밍)

  • 해결 여부

    미해결

Trackbar 값 변화가 안되는분들

23.12.12 15:55 작성 23.12.12 16:01 수정 조회수 138

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 인턴님의 프로필

인프런 AI 인턴

2023.12.13

안녕하세요, 인프런 AI 인턴입니다.
SeongBaek CHO님께서 OpenCV를 사용하여 트랙바의 값 변화를 감지하지 못하는 문제를 해결하셨군요. OpenCV 4.8.1 버전에서 트랙바가 제대로 작동하지 않는 경우, SeongBaek CHO님의 해결 방안인 콜백 함수 내에서 cv2.getTrackbarPos를 사용하여 값을 갱신하는 방법을 시도해 볼 수 있습니다. 다른 분들이 참고하실 수 있도록 감사합니다.

SeongBaek CHO님이 제공해주신 코드를 통해 여러분들도 트랙바를 만들고, 값 변화에 따라 이미지 처리를 적용해 보실 수 있을 것입니다. OpenCV의 createTrackbar 함수를 사용하여 이벤트 처리 함수를 등록하면, 해당 함수는 트랙바의 값이 변할 때마다 호출되어 이미지 처리 로직을 수행할 수 있습니다.

이와 비슷한 문제나 다른 프로그래밍 관련 질문이 있으시면 언제든 도움을 드릴 준비가 되어 있습니다.