OpenCV中resize()函数使用

来源:互联网 发布:cmd中如何测试80端口 编辑:程序博客网 时间:2024/05/02 22:51

cmakelists:

cmake_minimum_required(VERSION 3.7)project(size_function)set(CMAKE_CXX_STANDARD 11)find_package(OpenCV REQUIRED)include_directories(${OpenCV_DIRS})set(SOURCE_FILES main.cpp)add_executable(size_function ${SOURCE_FILES})target_link_libraries(size_function ${OpenCV_LIBS})

程序:

#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>using namespace std;using namespace cv;int main(){    //读入原始图    Mat src_image = imread("ubuntu.png");    //定义中间变量和要缩小和放大的两张图    Mat tmp_image, dst_image1, dst_image2, dst_image3, dst_image4;    //定义一个中间变量,转接一下    tmp_image = src_image;    //显示原始图    imshow("原始图像", src_image);    //这里看一函数定义:    //前两个参数:原图,输出图。没什么好说的    //第三四五个参数是选取使用的,主要就是规定缩放的倍数,    //dsize相当于直接规定了缩放后要得到的大小,这个要是设置了,后面的fx fy有默认值,是不需要设置的    //fx fy是跟dsize并行的缩放信息,就是在dsize为0的时候,这两个值必须设置,表x y方向的缩放倍率    //最后一个为插值方式,这里默认的是线性插值,还有许多插值方式,各有特点    /*CV_EXPORTS_W void resize( InputArray src, OutputArray dst,                              Size dsize, double fx = 0, double fy = 0,                              int interpolation = INTER_LINEAR );    */    //方式一:直接定义输出的大小,后面的参数都为默认值    resize(tmp_image, dst_image1, Size(tmp_image.cols/2, tmp_image.rows/2));    resize(tmp_image, dst_image2, Size(tmp_image.cols*2, tmp_image.rows*2));    //方式二:dsize设为默认,通过设置后面fx fy实现缩放    resize(tmp_image, dst_image3, Size(), 0.5, 0.5);    resize(tmp_image, dst_image4, Size(), 2, 2);    imshow("Size缩小", dst_image1);    imshow("Size放大", dst_image2);    imshow("fx fy缩小", dst_image3);    imshow("fx fy放大", dst_image4);    //waitKey(0)貌似只需要写在return之前......    waitKey(0);    return 0;}

运行结果看两种缩放方式效果一样

原创粉丝点击