Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在OpenCV中创建矩阵后调整其大小_C++_Image_Opencv_Image Resizing - Fatal编程技术网

C++ 在OpenCV中创建矩阵后调整其大小

C++ 在OpenCV中创建矩阵后调整其大小,c++,image,opencv,image-resizing,C++,Image,Opencv,Image Resizing,我是OpenCV新手,我正在看Canny的边缘检测教程。 我正在研究如何调整刚刚创建的mat的大小。代码如下: src = imread( impath ); ... dst.create( src.size(), src.type() ); 现在我尝试用以下方法调整垫子的大小: resize(dst, dst, dst.size(), 50, 50, INTER_CUBIC); 但这似乎没有改变任何事情 我有两个疑问: 1:在create()之后调用resize()是否做得很好? 2

我是OpenCV新手,我正在看Canny的边缘检测教程。 我正在研究如何调整刚刚创建的
mat
的大小。代码如下:

 src = imread( impath );
 ...
 dst.create( src.size(), src.type() );
现在我尝试用以下方法调整垫子的大小:

resize(dst, dst, dst.size(), 50, 50, INTER_CUBIC);
但这似乎没有改变任何事情

我有两个疑问: 1:在
create()
之后调用
resize()
是否做得很好? 2:如何指定
垫的尺寸


我的目标是调整图像大小,如果图像不清晰

请创建与
src
大小相同的
dst
mat。另外,当您调用
resize
时,您同时传递目标大小和
fx/fy
比例因子,您应该传递一个:

Mat src = imread(...);
Mat dst;
resize(src, dst, Size(), 2, 2, INTER_CUBIC); // upscale 2x
// or
resize(src, dst, Size(1024, 768), 0, 0, INTER_CUBIC); // resize to 1024x768 resolution
更新:来自
OpenCV
文档:

cv::Mat img_dst;
cv::resize(img, img_dst, cv::Size(640, 480), 0, 0, cv::INTER_AREA);
cv::namedWindow("Contours", CV_WINDOW_AUTOSIZE);
cv::imshow("Contours", img_dst);
缩放只是调整图像的大小。OpenCV附带了一个函数 cv2.resize()用于此目的。可以指定图像的大小 手动,也可以指定比例因子。不同的 采用插值方法。优选的插值方法是 用于收缩的cv2.INTER_面积和cv2.INTER_立方(慢速)& cv2。用于缩放的内部线性。默认情况下,使用的插值方法为 cv2.所有尺寸调整均为线性。可以调整输入的大小 使用以下任一方法进行图像处理:

另外,在
visualc++
中,我尝试了两种收缩方法,
cv::INTER_AREA
的工作速度明显快于
cv::INTER_CUBIC
(如
OpenCV
文档所述):

cv::Mat img_dst;
cv::resize(img, img_dst, cv::Size(640, 480), 0, 0, cv::INTER_AREA);
cv::namedWindow("Contours", CV_WINDOW_AUTOSIZE);
cv::imshow("Contours", img_dst);