0
我想读取图像,并使用OpenCV从它裁剪一个矩形区域。然而,我得到的裁剪图像似乎与原始图像不成比例并且大小不一样。我的代码有问题吗?还是我在做一些愚蠢的事情,如无意中放大窗口。在Ubuntu上运行。OpenCV裁剪图像失真
#include "opencv2/opencv.hpp"
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
using namespace cv;
using namespace std;
int main()
{
// Read in an image 1
Mat Cloud1 = imread("/home/user1/Pictures/cloud1.jpeg");
Rect rect(250,250,150,150); //some random values
Mat Template = Cloud1(rect);
namedWindow("FIGURE 1", CV_WINDOW_AUTOSIZE);
namedWindow("FIGURE 2", CV_WINDOW_AUTOSIZE);
imshow("FIGURE 1", Cloud1);
imshow("FIGURE 2", Template);
waitKey(0);
return 0;
}
更新:没关系我认为这是一个显示问题,因为当我黑暗的模板Template = 1.0f * Template - 20
,原始图像被正确修改。
Wierd ...代码似乎很好.. – Miki
这可能是由于'CV_WINDOW_AUTOSIZE',但它不应该,但我已经经历了'imshow'意外行为,所以请将图像保存在指定的位置和检查结果。 – ZdaR