以编程方式控制缩放Opencv

时间:2014-08-18 07:18:36

标签: c++ image opencv image-processing

我在OpenCV中编写了一个简单的程序来打开tiff图像。这个程序几乎与this帖子相同(除了两行),但为了清楚起见,我会在这里添加它:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main( int argc, char** argv )
{
 if( argc != 2)
 {
 cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
 return -1;
 }

 Mat image;
 image = imread(argv[1], CV_LOAD_IMAGE_COLOR);   // Read the file

 if(! image.data )                              // Check for invalid input
 {
    cout <<  "Could not open or find the image" << std::endl ;
    return -1;
 }

 namedWindow( "Display window", WINDOW_AUTOSIZE );// Create a window for display.
 imshow( "Display window", image );                   // Show our image inside it.
 moveWindow("Display window",0,0); //set window postion to top left
 setWindowProperty("Display window", CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN); //make fullscreen

 waitKey(0);                                          // Wait for a keystroke in the window
 return 0;

}

我添加了两行以确保图像从左上角打开并且是全屏(第二行可能会在将来使用或未使用)。我想要做的是执行与滚动鼠标滚轮和“缩放”图像时相同的操作,但我想精确控制它,以便控制a)位置和b)缩放级别为“下图中的蓝色“窗口”(通过正常滚动鼠标实现)。 enter image description here。您会注意到图像顶部有一个小灰色窗口,表示当前图像部分的“缩放”程度。如何在代码中控制这个“缩放”窗口?

1 个答案:

答案 0 :(得分:0)

您可以创建包含最终图像的cv :: Mat对象。然后,首先编写缩放和裁剪的部分,然后写入&#34;放大&#34;窗口到最终图像的ROI