如果您实际打开了impyramid并查看了源代码,那么归结为一个imresize调用.具体来说,当A被定义为图像时,在调用impyramid时使用expand时会发生这种情况:

M = size(A,1);

N = size(A,2);

scaleFactor = 2;

outputSize = 2*[M N] - 1;

kernel = makePiecewiseConstantFunction( ...

[1.25 0.75 0.25 -0.25 -0.75 -1.25 -Inf], ...

[0.0 0.125 0.5 0.75 0.5 0.125 0.0]);

kernelWidth = 3;

B = imresize(A, scaleFactor, {kernel, kernelWidth}, ...

'OutputSize', outputSize, 'Antialiasing', false);

如您所见,outputSize被定义为图像维度减去1的两倍,这就是每个维度偏离1个像素的原因.函数makePiecewiseConstantFunction是一个在impyramid中定义的局部函数.我会让你打开它,亲眼看看.在调用上面的代码之前,请确保已定义.

因此,只需删除1的减法即可实现您想要的效果.

因此,请调用上面的代码,但将outputSize更改为:

outputSize = 2*[M N];

但是,如果您想要冒险,可以自己修改此源代码以获取一个标志,如果将其设置为true,则不会减1,false执行减法.因此,您可以修改impyramid的标头来执行此操作:

function B = impyramid(A, direction, padding)

然后,在完成任何计算之前的开始,您可以这样做:

if nargin == 2

padding = false;

end

这允许您在没有第三个参数的情况下调用impyramid,默认情况下不会填充.

完成后,在if语句的expand部分中,您可以执行以下操作:

else

scaleFactor = 2;

outputSize = 2*[M N];

if ~padding %// Change

outputSize = outputSize - 1;

end

kernel = makePiecewiseConstantFunction( ...

[1.25 0.75 0.25 -0.25 -0.75 -1.25 -Inf], ...

[0.0 0.125 0.5 0.75 0.5 0.125 0.0]);

kernelWidth = 3;

end

然后,嵌套的if语句检查您是否要允许输出图像的大小为2M x 2N或2M – 1 x 2N – 1.因此,当您完成修改代码后,您可以执行以下操作:

scaled_result1_2 = impyramid(scale1_2, 'expand', true);

scaled_result1_4 = impyramid(impyramid(scale1_4,'expand', true), 'expand', true);

matlab impyramid,图像 – Matlab impyramid问题相关推荐

  1. matlab rectangle图像,Matlab中对图像应用plot或者rectangle后的图像保存问题

    有时候,我们处理好图像后,为了标识出图像的目标区域来,需要利用plot函数或者rectangle函数,这样标识目标后,就保存图像.一般的保存图像可以利用figure中的edit菜单中的copy fig ...

  2. matlab 刷新图像,MATLAB三维画图、画线、动态刷新、不同视角、自动保存多张图像...

    作者:金良(golden1314521@gmail.com) csdn博客:http://blog.csdn.net/u012176591 效果图(http://www.tuyitu.com/gif/ ...

  3. OpenCV中图像Mat存储格式和MATLAB中图像Mat存储格式的区别

    首先,看一下图像中的宽高与笛卡尔坐标系之间的关系如下图所示,即x与width(cols)对应,y与height(rows)对应,x是按列来进行变化,y按行变化. OpenCV读入图像以Mat形式存储时 ...

  4. matlab对图像进行增强,利用matlab对图像进行增强处理.doc

    利用matlab对图像进行增强处理.doc 郑州轻工业学院课程设计任务书题目利用MATLAB对图像进行增强处理专业.班级电子信息工程07级学号姓名主要内容.基本要求.主要参考资料等:主要内容:在图像形 ...

  5. matlab中的图像,MATLAB中图像的基本操作

    MATLAB中图像的基本操作 1.读取.显示图片 MATLAB中提供了immread()与imshow()函数读取和显示图片.其中读取函数imread()原型: imread: A= imread(f ...

  6. matlab中图像读写

    一. 读写图像文件 1. imread imread函数用于读入各种图像文件,如:a=imread('e:/w01.tif') 注:计算机E盘上要有w01相应的.tif文件. 2. imwrite i ...

  7. Matlab | MATLAB实现图像的水印去除

    博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/shuiu1344545 萌萌的预处理图像 Matlab ...

  8. OpenCV | 双目相机标定之OpenCV获取左右相机图像+MATLAB单目标定+双目标定

    博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 原本网上可以搜到很多关于双目相机标 ...

  9. matlab 读取照片imread,利用matlab读取图像

    怎样用matlab读取20张图片并依次展示出来 指定路径下 单个文件夹data中所有图像 P = '.\data\';% 图像文件夹路径 img_path_list = dir(strcat(P,'* ...

最新文章

  1. 活久见!技术面试官竟然给我出了一个脑筋急转弯,还问我王者荣耀什么段位?...
  2. 表单标签form、label、input、textarea、select
  3. 2017-03-02学习心得之Java代码
  4. 黑马vue---10-11、Vue实现跑马灯效果
  5. 使用委托(事件)或中介设计模式实现多个Windows窗体文本框的同步
  6. 如果发现CSDN资源有问题,可以进行举报
  7. 190811每日一句
  8. Python实现学生信息管理系统
  9. UML建模与软件工程
  10. 机器学习实战+源代码
  11. 基于java的网上鲜花销售系统
  12. ElasticJob‐Lite:扩展作业类型
  13. 第一次跳槽总结(产品经理,简历面试)
  14. vscode 编写代码为白色 --解决办法
  15. RdViewer(远程控制电脑屏幕软件)官方中文版V3.3.1 | rd远程工具下载
  16. XSS攻击的一个校内简单实例
  17. 简单实用的出入库管理系统,帮你实现库存精细化管理!
  18. linux下解压文件的几种小操作
  19. 马蜂窝 iOS App 启动治理:回归用户体验
  20. 基于Android开发的仿网易云播放器

热门文章

  1. [css] 在固定宽度的div下,怎么让字体自适应大小,不超出宽度,也不要换行
  2. [js] 如何按回车自动提交表单
  3. 前端学习(2374):技术栈的使用
  4. 前端学习(2148):webpack-less图片文件的转化
  5. 前端学习(1749):前端调试值之如何查看js和css源码
  6. 前端学习(1603):脚手架组件使用
  7. FPGA+NIOS2 Verilog+C 实现一个计算器
  8. 树莓派移植SX1278 LoRa通信--使用wiringPi 移植GPIO中断
  9. java 分页 不 排序_java - 我应该如何将未分页但已排序的Pageable传递给Spring JPA存储库? - 堆栈内存溢出...
  10. Saltstack_使用指南17_salt-ssh