Resize an image type “Mat” opencv C++

前端 未结 2 2062
终归单人心
终归单人心 2021-01-13 04:39

I want to resize my image the code below works when the image is an IplImage but when i change it into Mat i get these errors: -Cannot convert \'cv::Mat::depth\' from type \

相关标签:
2条回答
  • 2021-01-13 04:58

    You can also use the code given below:

     Mat3b groupres;
     cvtColor(img, groupres, COLOR_GRAY2BGR);
     imshow("Grouped Result", groupres);
     Size size1(400, 450);
     resize(groupres, groupres, size1);
     waitKey();
    

    the waitKey(); helps the image to stay and wait for a response.

    0 讨论(0)
  • 2021-01-13 05:23

    use the C++ API syntax (currently you are using the C api):

    cv::Mat image = cv::imread("21.png", CV_LOAD_IMAGE_GRAYSCALE);
    cv::Mat dst;
    cv::resize(image, dst, cv::Size(150,150));
    
    cv::namedWindow("Source", CV_WINDOW_AUTOSIZE );
    cv::imshow("Source", image);
    cv::namedWindow("resize", CV_WINDOW_AUTOSIZE );
    cv::imshow("resize", dst);
    waitKey(0);
    

    please don't use the old C api cvMethodname functions anymore if you don't have to. Instead use the cv::Methodname functions which are typically much less error prone.

    If you need to specifiy an aspect ratio or different interpolation, see http://docs.opencv.org/2.4/modules/imgproc/doc/geometric_transformations.html#void%20resize(InputArray%20src,%20OutputArray%20dst,%20Size%20dsize,%20double%20fx,%20double%20fy,%20int%20interpolation)

    0 讨论(0)
提交回复
热议问题