【Emgu.CV教程】5.2、几何变换之缩放

        Emgu.CV里面,图像缩放就要用到Resize()函数,官方定义如下: 

public static void Resize(
    IInputArray src, // 输入图像
    IOutputArray dst, // 输出图像
    Size dsize, // 输出图像的尺寸,当他为空的时候,fx和fy起作用
    double fx = 0.0, // 水平轴上的比例因子
    double fy = 0.0, // 垂直轴上的比例因子
    Inter interpolation = Inter.Linear // 插值方法,有5种,一般选Inter.Linear
)

        看它的函数定义就知道, Resize()函数有两种用法,一种是指定输出图像的Size大小,一种是按照原始图像长宽比例进行缩放,下面以挨个举例,原始素材还是 lena.jpg ,其宽度和高度都是512。

1、指定输出图像的Size大小

        如果想让 lena.jpg  的长宽变成960 * 640,可以这样写代码:

Mat dstMat = srcMat.Clone();
int width = 960;
int heiht = 640;
CvInvoke.Resize(dstMat, dstMat, new System.Drawing.Size(width, heiht));
CvInvoke.Imshow("Result Mat, " + dstMat.Size.ToString(), dstMat);

        输出的目标图像如下,尺寸已经变成960 * 640: 

【Emgu.CV教程】5.2、几何变换之缩放_第1张图片

2、按比例缩放

        如果想让 lena.jpg  的宽度变成原来的0.75倍,高度变成原来的1.05倍,可以这样写代码:

Mat dstMat = srcMat.Clone();
double width = 0.75;
double heiht = 1.05;
CvInvoke.Resize(dstMat, dstMat, new System.Drawing.Size(), width, heiht);
CvInvoke.Imshow("Result Mat, " + dstMat.Size.ToString(), dstMat);

        结果是这样的,整幅图像宽度、高度也做了相应的调整。 

【Emgu.CV教程】5.2、几何变换之缩放_第2张图片

原创不易,请勿抄袭。共同进步,相互学习。  

你可能感兴趣的:(Emgu,CV使用教程,计算机视觉,c#,图像处理,Emgu.CV)