Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.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/9/opencv/3.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++_Opencv_Image Resizing - Fatal编程技术网

C++ 如何在OpenCV中将图像调整为特定大小?

C++ 如何在OpenCV中将图像调整为特定大小?,c++,opencv,image-resizing,C++,Opencv,Image Resizing,但是源图像的大小不同于img 是否有任何opencv函数可以将其调整为img大小?您可以使用。或者更好地使用C++接口(如 CV::Mead < IplImage > />代码>和 CV::IMADION< ,而不是 CVoLaDimaE>代码>,然后使用 CV::调整内存分配和分配的大小:< /P> < P>这两个函数需要在这里记录: :从磁盘读取图像 :调整大小到任意大小 简言之: IplImage* img = cvLoadImage("something.jpg"); IplImage*

但是源图像的大小不同于
img


是否有任何opencv函数可以将其调整为
img
大小?

您可以使用。或者更好地使用C++接口(如<代码> CV::Mead < IplImage > />代码>和 CV::IMADION< <代码>,而不是<代码> CVoLaDimaE>代码>,然后使用<代码> CV::调整内存分配和分配的大小:< /P> < P>这两个函数需要在这里记录:

  • :从磁盘读取图像
  • :调整大小到任意大小
  • 简言之:

    IplImage* img = cvLoadImage("something.jpg");
    IplImage* src = cvLoadImage("src.jpg");
    cvSub(src, img, img);
    

    请,请停止使用旧的和完全不推荐使用的IplImage*类

    制作一个有用的函数,如下所示:

    // Load images in the C++ format
    cv::Mat img = cv::imread("something.jpg");
    cv::Mat src = cv::imread("src.jpg");
    
    // Resize src so that is has the same size as img
    cv::resize(src, src, img.size());
    

    供您参考,python等价物是:

    IplImage* img_resize(IplImage* src_img, int new_width,int new_height)
    {
        IplImage* des_img;
        des_img=cvCreateImage(cvSize(new_width,new_height),src_img->depth,src_img->nChannels);
        cvResize(src_img,des_img,CV_INTER_LINEAR);
        return des_img;
    } 
    

    对于
    Emgu.CV 3.0

    e、 g


    详情请参见

    谢谢。我在很多关于opencv的主题中看到了cv::Mat,但我不知道它是什么。我在哪里可以找到关于它的一些信息(特别是基本信息),以及像你所说的那样的相关功能?请注意desu img的所有权。最好使用智能指针或OpenCV C++接口。直接回答问题。多谢各位!我的荣幸。当我可以的时候,我总是乐于贡献。
    imageBuffer = cv.LoadImage( strSrc )
    nW = new X size
    nH = new Y size
    smallerImage = cv.CreateImage( (nH, nW), imageBuffer.depth, imageBuffer.nChannels )
    cv.Resize( imageBuffer, smallerImage , interpolation=cv.CV_INTER_CUBIC )
    cv.SaveImage( strDst, smallerImage )
    
    CvInvoke.Resize(inputImage, outputImage, new System.Drawing.Size(100, 100), 0, 0, Inter.Cubic);