web-dev-qa-db-ja.com

imshow opencvを使用して画面に画像を合わせる

Mac OS X 13 'でopencvを使用して画像を表示したい。画像サイズは1920××1080です。このコードを実行すると、画像の一部しか見えません。画像を画面に合わせる必要があります。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include "opencv2/opencv.hpp"
#include<string.h>
using namespace cv;
using namespace std;

int main()
{
   Mat image=imread("/Users/rafikgouiaa/Qt/projects/MakeVideo/build-MakeVideo-    Desktop_Qt_5_0_2_clang_64bit-Debug/im.jpg");
   namedWindow( "Display frame",CV_WINDOW_AUTOSIZE);
   imshow("Display frame", image);
   waitKey(0);
   return 0
}
15
BetterEnglish

画面解像度よりも大きい画像を表示する必要がある場合は、呼び出す必要があります

namedWindow("Display frame", WINDOW_NORMAL)

imshowの前に。

ウィンドウ呼び出しの望ましいサイズを設定するには

cv::resizeWindow("Display frame", WIDTH, HEIGHT);

詳細については、 http://docs.opencv.org/modules/highgui/doc/user_interface.html#imshow を参照してください

26
Temak

_CV_WINDOW_AUTOSIZE_を namedWindow() に渡すと、表示されている画像に合わせてウィンドウサイズが自動的に調整されます。画像の一部が表示されているのは、おそらく画像が画面に対して大きすぎるためです。

解決するには、最初に画像のサイズを小さく変更します。このような:

_Mat image=imread("...");
resize(image, image, Size(image.cols/2, image.rows/2)); // to half size or even smaller
namedWindow( "Display frame",CV_WINDOW_AUTOSIZE);
imshow("Display frame", image);
_
7
herohuyongtao

代わりにCV_WINDOW_OPENGLを置く必要がありますCV_WINDOW_AUTOSIZE

0
ARCAON