2013-04-09 2 views
4

몇 가지 변형을 시도했지만 resizeWindow가 아무 것도하지 않는 것 같습니다. 나는 간단한 코드 예제를 제공한다. 결과는 2 개의 윈도우가 같은 크기인데, 서로 다른 크기를 갖기 때문이다.opencv - resizeWindow는 아무 작업도하지 않으시겠습니까?

Mat m = imread("somePath",CV_LOAD_IMAGE_COLOR); 
namedWindow("aa",CV_WINDOW_NORMAL); 
namedWindow("bb",CV_WINDOW_NORMAL); 
imshow("aa",m); 
imshow("bb",m); 
resizeWindow("aa",400,400); 
resizeWindow("bb",800,800); 
waitKey(0); 

opencv 2.4.3을 사용하여 ubunto 12.04에서 eclipse-cdt로 작업합니다.

  • 나는 디버깅을 시도했지만 기능에 들기는했지만 highGui modoul을 외부 소스로 추가하지 못하면 일부 h 파일 누락 오류가 발생합니다.

답변

1

나는 그 문제도 가지고 있었고, 결론은 OpenCV 창에 최소 크기가 있고 그 아래에있는 모든 창을 만들려한다는 것입니다. 귀하의 사진 영역도 회색 또는 기타 가짜 정보로 잘린 것으로 합리적으로 확신합니다.

+0

나는 약간의 변형을 시도했다. 크기가 400과 800이되도록 코드를 수정하면 아무런 변화가 없습니다. – shanif

+0

은 설치에 따라 다르지만 아래의 게시물을 참조하십시오. – Vlad

3

는 OpenCV의 Qt를 백엔드 지원이 설치되어 있는지 확인합니다.

견적에서 the documentation of namedWindow() (강조는 광산) :

플래그 - 윈도우의 플래그. 현재 지원되는 유일한 플래그는 CV_WINDOW_AUTOSIZE입니다. 이 값을 설정하면 창 크기가 표시된 이미지 (imshow() 참조)에 맞게 자동으로 으로 조정되고 창 크기를 수동으로 변경 할 수 없습니다 ( ).

...

참고 : CV_WINDOW_NORMAL 또는 CV_WINDOW_AUTOSIZE : Qt는 백엔드 추가 플래그를 지원 CV_WINDOW_NORMAL가 CV_WINDOW_AUTOSIZE가 자동으로 조정하는 반면 에 창 크기가 표시된 이미지에 맞게, 을 창 크기를 조정 할 수 있습니다 (참조 imshow())를 사용하면 창 크기를 수동으로 변경할 수 없습니다.

CV_WINDOW_AUTOSIZE은 시스템에서 유일하게 지원되는 플래그입니다. Documentation for resizeWindow없이CV_WINDOW_AUTOSIZE 플래그를 만들 수있는 창만 크기를 조정할 수 있다고 말합니다. 옵션은 다음과 같습니다

  • Qt는 백엔드에서 OpenCV를 설치하거나
  • 사용 resize() 기능을 표시하기 전에 이미지 크기를 조정합니다.
관련 문제