效果如图所示:

Matlab里的imresize函数可以对图像放大和缩小,但这同时也会改变图像矩阵的大小,如果想要上图所示的结果,需要再进行一些处理,处理代码如下所示。

clc
close all;% 从当前目录下打开一张图片
[filename, filepath] = uigetfile({'*.jpg;*.ppm; jpeg *.;*.bmp;*.png'},'Choose Input Image');
if isequal(filename,0) || isequal(filepath,0)disp('User pressed cancel')return
elsefullfp = fullfile(filepath, filename);
end
image = imread(fullfp);   %代表要处理的图像
mysize = size(image);
%把图像转换成灰度图
if numel(mysize) > 2image = rgb2gray(image);
end
r_e = mysize(1);
c_e = mysize(2);
subplot(2,3,1); imshow(image,[]); title('Input Image');temp1 = imresize(image,2); %表示把图像放大到原来的两倍,但同时图像矩阵也是变成了原来的两倍
[r_t1,c_t1] = size(temp1);
s = temp1(round(r_t1/2)-floor(r_e/2) : round(r_t1/2)+ceil(r_e/2)-1, round(c_t1/2)-floor(c_e/2) : round(c_t1/2)+ceil(c_e/2)-1);
subplot(2,3,2); imshow(s,[]); title('Magnification');temp2 = imresize(image,0.5); %表示把图像缩小到原来的一半,但同时图像矩阵也变成了原来的一半
[r_t2,c_t2] = size(temp2);
temp3 = zeros(r_e,c_e);
temp3(round(r_e/2)-floor(r_t2/2) : round(r_e/2)+ceil(r_t2/2)-1, round(c_e/2)-floor(c_t2/2) : round(c_e/2)+ceil(c_t2/2)-1) = temp2;
ss = temp3;
subplot(2,3,3); imshow(ss,[]); title('Minification');

ps:直接调用imresize函数而不进行处理的效果如下图所示:

看起来图像没怎么变化,但存储图像的矩阵已经变大或变小了,如下图所示:

image为原始图像矩阵,temp1为放大后的图像矩阵,temp2为缩小后的图像矩阵。

Matlab 保持图像矩阵大小不变对图像放大和缩小相关推荐

  1. 安卓+ios系统--手机端页面自适应手机屏幕大小,禁止手动放大和缩小VUE

    项目需求 手机端,页面自适应手机屏幕大小,不能手动放大和缩小. 1.代码 在index.html中加入下面的代码: <!-- 手机端页面自适应手机大小,禁止手动放大 --> <met ...

  2. c#创建画布_C# – 调整图像画布大小(保留源图像的原始像素尺寸)

    我的目标是拍摄一个图像文件,并将尺寸增加到下一次的两倍,同时保持像素(也就是不缩放源图像).因此,基本上最终的结果将是原始图像,加上跨越图像右下角的额外的白色空间,因此总尺寸是二的幂. 下面是我现在使 ...

  3. iOS-84-WKWebView字体大小颜色及内容放大或缩小显示

    只需在该代理方法加上这个就可以了,直接上代码: // WKNavigationDelegate 页面加载完成之后调用 - (void)webView:(WKWebView *)webView didF ...

  4. OpenCV精进之路(九):图像轮廓和图像分割修复——图像修复技术

    在实际应用中,我们的图像常常会被噪声腐蚀,这些噪声或是镜头上的灰尘或水滴,或是旧照片的划痕,或者是图像遭到人为的涂画(比如马赛克)或者图像的部分本身已经损坏.如果我们想让这些受到破坏的额图片尽可能恢复 ...

  5. matlab 图像基本矩阵,MATLAB基本的使用方法归纳(图像,矩阵及函数)

    读取图像:用imread函数读取图像文件,文件格式可以是TIFF.JPEG.GIF.BMP.PNG等.比如 >> f = imread('chestxray.jpg'); 读进来的图像数据 ...

  6. matlab矩阵方块网络着色imshow_matlab中用imshow()显示图像与图像矩阵的数据类型的关系...

    在matlab中,我们常使用imshow()函数来显示图像,而此时的图像矩阵可能经过了某种运算.在matlab中,为了保证精度,经过了运算的图像矩阵I其数据类型会从unit8型变成double型.如果 ...

  7. MATLAB技术沙龙之如何批量处理图像的大小

    下面来介绍一下在MATLAB中如何批量统一处理多张图片的大小,前提是位于同一文件夹路径下,具体如下: 1.打开MATLAB主界面,在其编辑器主界面写入下列代码: file_path = 'D:\dyq ...

  8. matlab修改图像分辨率_matlab imresize 改变图像大小

    功能:改变图像的大小. 用法:B = imresize(A,m) B = imresize(A,m,method) B = imresize(A,[mrows ncols],method) B = i ...

  9. 批量处理图像的大小-MATLAB

    本人菜鸟一枚,刚接触图像处理,为了批量修改自己的图像的大小,查找了一些资料,经过自己的修改,终于取得了成功.特意把代码奉献出来,希望对大家有所帮助.代码如下: file_path = 'D:\trai ...

最新文章

  1. ModuleNotFoundError: No module named 'sklearn.cross_validation'
  2. [BZOJ1079][SCOI2008]着色方案 dp
  3. mongodb常用命令
  4. 我要再接再力 学更多
  5. lintcode-49-字符大小写排序
  6. 排序算法之--桶排序(桶,像桶一样的排序,听起来很有趣哦0。0)
  7. linux两台服务器传输,Linux两台服务器之间高速数据传输命令:scp应用详解
  8. Centos 监控进程,并自动重启
  9. 摩拜单车又涨价了!真的要骑不起了
  10. python怎样画动态文字_Python制作动态字符图的实例
  11. 设计师值得学习的分类网站
  12. 从字节码看java中 this 的隐式传参
  13. @ApiImplicitParam注解的dataType、paramType两个属性的区别?
  14. InfoQ就Spring Boot 2.0 GA版发布采访了项目牵头人Phil Webb
  15. yum list 报错linux,centos7下运行yum list 出现如下报错 求教!
  16. 深度linux投影教程,在深度Deepin系统使用XMind 8的方法
  17. 如何做一个炫酷的墨水屏电子钟?
  18. 华硕x450jn拆机_自己动手丨 轻松搞定华硕X450JN笔记本 内存扩展
  19. 1247:河中跳房子
  20. 验证回文字符串 II(贪心+双指针)

热门文章

  1. 学计算机好还是学电子信息类好,电子信息类就业前景好吗 就业方向有哪些
  2. python getattr_python getattr的美妙生活
  3. 探究 | Elasticsearch 与传统数据库界限
  4. Java锁的几种应用
  5. keras 受限玻尔兹曼机_受限玻尔兹曼机及实现
  6. 【mysqlplus apply()】
  7. android底层库包含哪些,Android的底层库libutils
  8. mov指令和 add以及sub 指令的区别
  9. 神经网络_训练loss不下降原因集合
  10. 面向对象和C++基础—面向对象(基础篇)