[OpenCV] imshow 창설정 및 종료 처리 (x버튼 처리)
·
Programming/DIP
imshow 창설정 및 종료 처리 (x버튼 처리)창 설정 관련 arguments 및 options cv2.namedWindow를 통해 미리 창에 대한 title을 지정하여 놓을 수 있음.cv2.namedWindow('image', cv2.WINDOW_NORMAL)# Using resizeWindow() : Below code does not works with cv2.WINDOW_AUTOSIZE# cv2.resizeWindow("image", 300, 700)cv2.WINDOW_AUTOSIZE가 기본으로 2nd argument없이 호출시 선택됨.읽어들이는 image 크기에 맞춰 window의 크기가 결정됨.2nd argument로 cv2.WINDOW_NORMAL를 설정시 window의 크기 조정이 가능함..
[OpenCV] Desired Data Type : ddtype
·
Programming/DIP
OpenCV에서 filter등의 함수에서 주로 등장하는 ddtype parameter는 결과 image의 data type을 의미한다. desired data type이라고도 불리고 이를 줄여서 ddtype라고 기재하는데, 일반적으로 input image와 같은 data type을 유지하도록 -1을 사용하는 경우가 많다. 이 방식은 대부분 큰 문제가 없지만, gradient나 laplacian을 구하는 filter 연산의 경우, 음수값을 결과로 가질 수 있는데 OpenCV에서 image를 나타내기 위해 사용하는 기본 데이터 타입이 np.uint8 (or cv2.CV_8U)이기 때문에 -1로 ddtype를 지정할 경우 문제가 발생한다. 이는 음수를 고려하지 않은 cv2.CV_8U는 음수값의 gradient..
openCV : cv2.waitKey bug
·
Programming
아래 글은 WSL2에서 WSLg의 버전이 낮을 경우 발생함. WSL에서의 2022.10 당시 위의 문제를 해결한 상태임. 다음 글 참조. https://bme808.blogspot.com/2022/10/cv2waitkey-wsl.html cv2.waitkey 가 wsl에서 잘 안동작하던 문제 해결. 결론부터 애기하면, wslg version이 낮아서 발생한 문제였음. WSLg 버전이 1.0.45 로 업그레이드하면 해당 에러는 해결됨. 설치를 위해선 Windows Subsystem for Linux Preview 설치(MS store... bme808.blogspot.com 업그레이드를 할 수 없는 경우라면 다음을 참고(근원적인 해결이 아닌 순간적인 모면책에 불과함). WSL2에서 openCV를 이용한 간..
[DIP] OpenCV : Region of Interest (ROI) : Callback으로 구현.
·
Programming/DIP
cv2.selectROI가 아닌 이벤트 핸들러(MouseCallback)를 이용한 구현임.x button (or close button)을 지원하기 위한 구현을 추가.x 키를 누를 경우, roi를 보여주는 창만 닫히도록 처리함.esc 키를 누를 경우, 프로그램 종료.import cv2import numpy as npis_dragging = Falsex0,y0 = -1,-1w0,h0 = -1,-1red = (0,0,255)exit_roi = Falseimport osd_path = os.path.dirname(__file__)f_path = os.path.join(d_path,"lena.png")def onMouse(event, x, y, flags, param): global is_dragging ..
[DIP] opencv : Region of Interest (ROI) : cv2.selectROI
·
Programming/DIP
cv2에서 사각형의 ROI를 선택하는 가장 쉬운 방법. Signatureret_val = cv2.selectROI( [window_name], img [, showCrossHair=True, fromCenter=False] )window_name : ROI 선택을 수행할 window이름. strimg : 보여질 이미지.showCrossHair : ROI 중심에 십자모양 표시 여부fromCenter : 마우스 시작지점을 영역의 중심으로 간주ret_val = (x,y,w,h) of ROISample codeimport cv2import numpy as npimport osd_path = os.path.dirname(__file__)img_path = f'{d_path}/lena.pn..
[OpenCV] cv2.cvtColor
·
Programming/DIP
OpenCV의 경우, 다양한 color space를 지원함.result_img = cv2.cvtColor(src_img, conversion_flag) 위와 같은 code를 통해 src_img를 다른 color space의 이미지(실제로는 numpy의 ndarray) result_img로 변경할 수 있음. conversion_flag는 매우 다양하지만, 주로 사용하는 건 다음과 같음.cv2.COLOR_BGR2GRAY : BGR(Blue, Green, Red)을 Gray-scale image로cv2.COLOR_BGR2RGB : opencv는 BGR이 기본인지라, matplotlib나 PIL과 같이 쓰려면 RGB로 바꾸어야 함.cv2.COLOR_BGRA2RGBA : opencv는 BGR이 기본인지라, alp..