在用c++代码复现matlab代码时,遇到两者resize函数的结果不相同的问题。

opencv:

resize(image1, reTmp, Size(, ), , , cv::INTER_LINEAR);

matlab:

tmp=imresize(img,[ ],'bilinear','AntiAliasing',false);

以一张500×396的彩色图片为例,resize到(50,50):

matlab  imresize代码:

img=imread('image/cluo.jpg');
img=single(img);
for i=:
fprintf('%.6f ',img(,i,));
end
fprintf('\n');
tmp=imresize(img,[ ],'bilinear','AntiAliasing',false);
for i=:
fprintf('%.6f ',tmp(,i,));
end

c++ resize代码:

#include <opencv2\opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std; void main()
{
Mat image = imread("cluo.jpg");
Mat image1(image.rows, image.cols, CV_32FC3);
for (int i = ; i < image.rows; i++)
for (int j = ; j < image.cols; j++)
{
image1.at<Vec3f>(i, j)[] = image.at<Vec3b>(i, j)[];
image1.at<Vec3f>(i, j)[] = image.at<Vec3b>(i, j)[];
image1.at<Vec3f>(i, j)[] = image.at<Vec3b>(i, j)[];
} //打印输出resize前r通道前10个像素点的坐标
for (int i = ; i < ; i++)
printf("%.6f ", image1.at<Vec3f>(, i)[]);
printf("\n");
Mat reTmp;
resize(image1, reTmp, Size(, ), , , cv::INTER_LINEAR);
//resize(image1, reTmp, Size(50, 50), 0, 0, cv::INTER_NEAREST);
//打印输出resize后r通道前10个像素点的坐标
for (int i = ; i < ; i++)
printf("%f ", reTmp.at<Vec3f>(, i)[]);
printf("\n"); system("pause");
}

结果比较:

结果基本相同

matlab中默认的     tmp=imresize(img,[50 50],'bilinear');    函数是打开了抗锯齿   结果和opencv中的INTER_LINEAR不相同

matlab  和  opencv中  nearest  方式的结果比较:

c++:    resize(image1, reTmp, Size(50, 50), 0, 0, cv::INTER_NEAREST);

matlab:   tmp=imresize(img,[50 50],'nearest');

matlab:   tmp=imresize(img,[50 50],'nearest','AntiAliasing',false);

结果不相同

opencv的resize和matlab的imresize函数的计算的更多相关文章

  1. paper 121 :matlab中imresize函数

    转自:http://www.cnblogs.com/rong86/p/3558344.html matlab中函数imresize简介: 函数功能:该函数用于对图像做缩放处理. 调用格式: B = i ...

  2. MATLAB 用 imresize() 函数缩小图象是 double 和 uint8 有差别

    今天发现一个奇怪的现象. 在用 imresize() 缩小图象时,如果图象时 double 格式的,缩小后会产生不连通的现象. 下面是原图: 对这张图象 img 做 simg = imresize(i ...

  3. opencv通过dll调用matlab函数,图片作为参数

    [blog 项目实战派]opencv通过dll调用matlab函数,图片作为参数                   前文介绍了如何“csharp通过dll调用opencv函数,图片作为参数”.而在实 ...

  4. opencv 图像resize

    这是文档中的函数原型 cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) 参数说明src:要resize的原图,应该是一个矩阵 dsi ...

  5. MATLAB的边缘检测函数中隐含的细化(非极大值抑制)算法

    前段时间做了一个车牌检测识别的项目,我的任务是将MATLAB中的算法移植成C++代码.在车牌区域提取的过程中,用到了水平方向的Sobel算子检测垂直边缘,一开始我直接把MATLAB中的 bw = ed ...

  6. matlab中patch函数的用法

    http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...

  7. Matlab基本函数-conj函数

    Matlab基本函数-conj函数 1.conj函数:用于计算复数的共轭值 2.用法说明:y=conj(x)函数计算复数x的共轭值.输出结果y的维数跟输入x的维数一致,返回值为:real(y)-i*i ...

  8. 【原创】Matlab.NET混合编程技巧之找出Matlab内置函数

                  本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新    Matlab和C#混合编程文章目录 :[目录]Matlab和C#混合编程文章目录 Matlab与.N ...

  9. 【原创】Matlab.NET混合编程技巧之直接调用Matlab内置函数

                  本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新    Matlab和C#混合编程文章目录 :[目录]Matlab和C#混合编程文章目录 在我的上一篇文章[ ...

随机推荐

  1. elastricsearch学习笔记

    一.基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT)         Elasticsearch是一个接近实时的搜索平台.这意 ...

  2. [ssh] 通过ssh私钥生成公钥的方法

    ssh-keygen -y -f .ssh/id_rsa.key id_rsa.key是私钥.

  3. Interllij IDEA中启动web项目

    1.在IDEA中打开你的Web应用,点击一下绿色三角形左边的框框,然后在弹出框上选择Edit Configurations,会弹出一个配置面板. 2.在弹出的面板中我们点击Defaults,然后找到T ...

  4. Django中一个项目使用多个数据库

    在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接. 参考:http://blog.csdn.net/songfree ...

  5. 5.0-uC/OS-III时间管理

    1.时间管理 uC/OS-III为用户提供了与时间管理相关的服务. 在uC/OS-III中设置了能提供时基中断的中断源.该中断源提供 10Hz 到 1000Hz 之间的中断(需设置OS_CFG_APP ...

  6. [转]有return的情况下try catch finally的执行顺序

    结论: 1.不管有没有出现异常,finally块中代码都会执行: 2.当try和catch中有return时,finally仍然会执行: 3.finally是在return后面的表达式运算后执行的(此 ...

  7. 家庭记账本之微信小程序(二)

    在网上查阅了资料后,了解到了在完成微信小程序之前要完成注册阶段的工作,此次在这介绍注册阶段的流程. 1.首先你要确定小程序的定位.目的以及文案资料等(准备工作). 2.打开微信公众平台官网,点击右上角 ...

  8. php 实现简拼

    <blockquote>model::::::::::::::::::::::::::::: function getFirstCharter($str){if(empty($str)){ ...

  9. phpcms内容页替换

    一.浏览次数替换 <script type="text/javascript" src="{JS_PATH}js/jquery-1.11.2.min.js" ...

  10. CentOS 7 配置Tomcat9连接MySQL

    配置Tomcat 首先安装Tomcat 安装Tomcat分为安装Tomcat和安装JDK两个步骤 JDK( Java Development Kit ) 是Sun Microsystems针对Java ...