-
- 기존
cv::namedWindow();
에 이미지 확대/축소, 저장 기능을 추가한 확장 코드
(이미지 사이즈가 테스크톱 해상도보다 크면 보기 불편한 문제점을 보완)
- 기존
-
- OS: MS Windows 10 ~
- Language : C++ 11 ~
- Opencv version : 4.6.0 ~
- MFC 아닌 환경에서도 사용가능 (수정완료)
-
마우스 휠 (Mouse Wheel Up / Down)
마우스 커서 위치로 확대(Zoom in), 축소(Zoom out) (이)가 가능하다. -
마우스 드래그 (Mouse LButton Down & Drag)
마우스 휠로 확대를 한 경우 마우스 왼쪽을 누른 상태로 드래그하여 화면을 이동할 수 있다. -
마우스 우클릭 (Mouse RButton Down)
마우스 우클릭 시 현재(확대 / 축소) 이미지를 현재시간 이름으로 디렉터리에
"cvExtension" 폴더를 생성 후 폴더에 이미지를 저장하고 저장 완료 메시지 박스를 표시한다.
-
설치(Install)
A. 파일 디렉터리에cvMouseExtension.cpp
와cvMouseExtension.h
추가
B. 솔루션 탐색기⇾ 프로젝트 우클릭⇾ 추가⇾ 기존 항목⇾cvMouseExtension.cpp
와cvMouseExtension.h
추가
C. 헤더 파일 또는 .cpp에#include cvMouseExtension.h
추가 -
사용 예시(Example)
void 클래스::함수명(String winname, Mat& image, int ms) { cvMouseExtension window(winname); window.ImShow(image); // cv::Mat으로 불러오기 waitKey(ms); }
또는,
void 클래스::함수명(String Path, String winname, int ms) { cvMouseExtension window(winname); window.ImRead(Path); // 경로로 불러오기 waitKey(ms); }
트랙바 사용 예시
cvMouseExtension window("이름", WINDOW_NORMAL); // 플래그는 초기값 1 window.SetInitailScale(1); // 초기 배율 설정 1 = 배율 없음 window.ImRead(path); // 파일 경로 string 또는 cv::String 형식 /* 트랙바 생성 또는 Window 관련 코드 추가 */ waitKey(0);
Reference : Github Repositories
+PS : 저장 기능은 Imshow 에서 Ctrl + S 를 누르면 동일하게 나온다 (단, 확대 축소가 불가능 하므로 확대된 상태에서의 이미지는 아님)