zoukankan      html  css  js  c++  java
  • opencv中的缩放函数

      图像处理里面缩放操作是比较常见的:

      最近邻插值:类似简单映射的处理方式,目标图像w1,h1,原始图像w0,h0,则在目标图像上的点(x,y)的像素点实际对应原始图上(x*w0/w1,y*h0/h1)的像素点。优点是速度快,操作简单;缺点是图片会产生锯齿状。

      线性插值:对周围的点通过不同权值的乘积,使目标点的像素会受到周围像素的影响,过度更加自然些,即不会产生锯齿状。  对于一个目的像素,设置坐标通过反向变换得到的浮点坐标为(i+u,j+v) (其中i、j均为浮点坐标的整数部分,u、v为浮点坐标的小数部分,是取值[0,1)区间的浮点数),则这个像素得值 f(i+u,j+v) 可由原图像中坐标为 (i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所对应的周围四个像素的值决定,即:f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1)

      opencv中有四种处理方式:

      除了上面的两种,还有区域插值,三次样条插值

      

      测试代码如下:

      

    #include "stdafx.h"
    #include "cv.h"
    #include "highgui.h"
    
    int main(){
        IplImage *img= cvLoadImage("C:/27.jpg");//读取源图片
        cvNamedWindow("Example1",CV_WINDOW_AUTOSIZE);
        cvNamedWindow("Example2",CV_WINDOW_AUTOSIZE);
        cvNamedWindow("Example3",CV_WINDOW_AUTOSIZE);
        cvNamedWindow("Example4",CV_WINDOW_AUTOSIZE);
        cvNamedWindow("Example5",CV_WINDOW_AUTOSIZE);
    
        cvShowImage("Example1",img);//在Example1显示图片
    
        IplImage *temp= cvLoadImage("C:/lv.jpg");//目标图片,放大成这个图片的大小
    
    
        cvResize(img,temp,CV_INTER_NN);
        cvShowImage("Example2",temp);
    
        cvResize(img,temp,CV_INTER_LINEAR);
        cvShowImage("Example3",temp);
    
    
        cvResize(img,temp,CV_INTER_AREA);
        cvShowImage("Example4",temp);
    
        cvResize(img,temp,CV_INTER_CUBIC);
        cvShowImage("Example5",temp);
    
        cvWaitKey(0);//暂停用于显示图片
    
        cvReleaseImage(&img);//释放img所指向的内存空间并且
        cvReleaseImage(&temp);//释放img所指向的内存空间并且
        cvDestroyWindow("Example1");
        cvDestroyWindow("Example2");
        cvDestroyWindow("Example3");
        cvDestroyWindow("Example4");
        cvDestroyWindow("Example5");
    
        return 0;
    }
    View Code

    放大:  

     

    缩小:

      

    缩小的时候,区域插值效果不错!

    参考:http://blog.sina.com.cn/s/blog_afe2af380101cadz.html ;学习opencv

  • 相关阅读:
    ABAP接口用法
    监听textarea数值变化
    The first step in solving any problem is recognizing there is one.
    Wrinkles should merely indicate where smiles have been.
    God made relatives.Thank God we can choose our friends.
    Home is where your heart is
    ABAP跳转屏幕
    Python 工具包 werkzeug 初探
    atom通过remote ftp同步本地文件到远程主机的方法
    Mongodb学习笔记一
  • 原文地址:https://www.cnblogs.com/huhuuu/p/3534711.html
Copyright © 2011-2022 走看看