当前位置: 首页 > news >正文

四、数字图像处理Matlab实验 第二章 数字图像基础

在这里插入图片描述

文章目录

  • 一、使用不同空间分辨率显示图片 P35
    • 1.1 实验内容
    • 1.2 文件目录
    • 1.3 Matlab代码
    • 1.4 实验结果
  • 二、使用不同灰度分辨率显示图片 P35
    • 2.1 实验内容
    • 2.2 文件目录结构
    • 2.3 Matlab代码
    • 2.4 实验结果
  • 三、使用三种插值法实现图像缩放 P38
    • 3.1 实验内容
    • 3.2 文件目录结构
    • 3.3 Matlab代码
    • 3.4 实验结果
  • 四、算术操作:带噪图像相加(平均)降噪 P44
    • 4.1 实验内容
    • 4.2 文件目录结构
    • 4.3 Matlab代码
    • 4.4 实验结果
  • 五、算术操作:增强差别的图像相减 P45
    • 5.1 实验内容
    • 5.2 文件目录结构
    • 5.3 Matlab代码
    • 5.4 实验结果
  • 六、算术操作:使用图片相乘和相除 P45
    • 6.1 实验内容
    • 6.2 文件目录结构
    • 6.3 Matlab代码
    • 6.4 实验结果

实验所用教材配图资源:数字图像处理-冈萨雷斯-第三版(教材配图)

一、使用不同空间分辨率显示图片 P35

1.1 实验内容

使用不同空间分辨率显示图片

1.2 文件目录

在这里插入图片描述

1.3 Matlab代码

% 显示不同空间分辨率的图像
% 清除所有之前的数据
close all;clear all;clc
% 1、导入1250dpi的原图片
img_1250 = imread('Fig0220(1250dpi).tif');
% 4、读入不同分辨率的图片
img_300 = imread('Fig0220(300dpi).tif');
img_150 = imread('Fig0220(150dpi).tif');
img_72 = imread('Fig0220(72dpi).tif');
% 5、创建一个图像层
figure(1);
% 6、依次在4个分隔区中显示上述图片
subplot(1,4,1);
imshow(img_1250);
title('1250 dpi');subplot(1,4,2);
imshow(img_300);
title('300 dpi');subplot(1,4,3);
imshow(img_150);
title('150 dpi');subplot(1,4,4);
imshow(img_72);
title('72 dpi');

1.4 实验结果

在这里插入图片描述

同一图片不同空间分辨率的显示

二、使用不同灰度分辨率显示图片 P35

2.1 实验内容

使用不同灰度分辨率(255,128,64,32,16,8,4,2)显示图片

2.2 文件目录结构

在这里插入图片描述

2.3 Matlab代码

% 显示不同灰度级显示同一图像
close all;clear all;clc;% 读入图片
in = imread('Fig0221(ctskull-256).tif');% 显示图像figure;
L=256;
for i = 1:8subplot(2,4,i);if i ~= 1in = idivide(in,2);endimshow(in,[0 L-1]);title(['灰度值为',num2str(L),'的图像']);L = L / 2;
end

2.4 实验结果

在这里插入图片描述

同一图片不同灰度分辨率的显示

三、使用三种插值法实现图像缩放 P38

3.1 实验内容

编写Matlab代码实现不同空间分辨率的图像的缩放。主要使用 最近邻内插法、双线性内插法、双三次内插法

3.2 文件目录结构

在这里插入图片描述

3.3 Matlab代码

% 使用最近邻域插值、双线性插值、双三次插值缩放图片的实验 P38
close all;clear all;clc
% 导入72dpi的图
img_72 = imread('Fig0220(72dpi).tif');
% 导入150dpi的图
img_150 = imread('Fig0220(150dpi).tif');
% 第一、二组计算切换标志% 使用72dpi的原图% ①使用最近邻域法扩大至原图大小img_nearest_72 = imresize(img_72,1250 / 72,'Method','nearest');% ②使用双线性插值法扩大至原图大小img_bilinear_72 = imresize(img_72,1250 / 72,'Method','bilinear');% ③使用双三次插值法扩大至原图大小img_bicubic_72 = imresize(img_72,1250 / 72,'Method','bicubic');% 使用150dpi的原图% ①使用最近邻域法扩大至原图大小img_nearest_150 = imresize(img_150,1250 / 150,'Method','nearest');% ②使用双线性插值法扩大至原图大小img_bilinear_150 = imresize(img_150,1250 / 150,'Method','bilinear');% ③使用双三次插值法扩大至原图大小img_bicubic_150 = imresize(img_150,1250 / 150,'Method','bicubic');figure;subplot(1,3,1),imshow(img_nearest_72);title("72dpi,最近邻内插法放大至原图大小");subplot(1,3,2),imshow(img_bilinear_72);title("72dpi,双向性内插法放大至原图大小");subplot(1,3,3),imshow(img_bicubic_72);title("72dpi,双三次内插法放大至原图大小");figure;subplot(1,3,1),imshow(img_nearest_150);title("150dpi,最近邻内插法放大至原图大小");subplot(1,3,2),imshow(img_bilinear_150);title("150dpi,双向性内插法放大至原图大小");subplot(1,3,3),imshow(img_bicubic_150);title("150dpi,双三次内插法放大至原图大小");

3.4 实验结果

在这里插入图片描述

72dpi的图像 使用三种插值方法进行放大

在这里插入图片描述

150dpi的图像 使用三种插值方法进行放大

四、算术操作:带噪图像相加(平均)降噪 P44

4.1 实验内容

依次将加有高斯噪声的5,10,20,50,100,相加平均后降噪

4.2 文件目录结构

在这里插入图片描述

4.3 Matlab代码

% 针对降噪的带噪图像的相加平均实验 P43
close all;clear all;clc;
% 读入图像
in = imread('Fig0226(galaxy_pair_original).tif');
% 创建100幅加高斯噪声的图像
s_5 = int32(in);
s_10 = int32(in);
s_20 = int32(in);
s_50 = int32(in);
s_100 = int32(in);
[r,c] = size(in);
img_noise = int32(zeros(r,c));
for i = 1:100img_noise = int32(imnoise(in,'gaussian',0,0.1));s_100 = s_100 + img_noise;if i <= 50s_50 = s_50 + img_noise;endif i <= 20s_20 = s_20 + img_noise;endif i <= 10s_10 = s_10 + img_noise;endif i <= 5s_5 = s_5 + img_noise;end
end% 显示图片
figure;
subplot(2,3,1);
imshow(mat2gray(img_noise));
title('被加高斯噪声污染的星系NGC 3314');subplot(2,3,2);
imshow(mat2gray(s_5 ./ 5));
title('对5幅图噪声图像平均的结果');subplot(2,3,3);
imshow(mat2gray(s_10 ./ 10));
title('对10幅图噪声图像平均的结果');subplot(2,3,4);
imshow(mat2gray(s_20 ./ 20));
title('对20幅图噪声图像平均的结果');subplot(2,3,5);
imshow(mat2gray(s_50 ./ 50));
title('对50幅图噪声图像平均的结果');subplot(2,3,6);
imshow(mat2gray(s_100 ./ 100));
title('对100幅图噪声图像平均的结果');

4.4 实验结果

在这里插入图片描述

累加m幅带有高斯噪声的图片再求平均值后的降噪

五、算术操作:增强差别的图像相减 P45

5.1 实验内容

将指定的两幅图像相减,得到增强后的差别部分

5.2 文件目录结构

在这里插入图片描述

5.3 Matlab代码

  • 实验一的代码
% 对于增强差别的图像相减的实验 P44(1)
close all;clear all;clc;
% 读入图片
in = imread('Fig0227(washington_infrared).tif');% 执行图像相减的操作
L = 256;
[row,column] = size(in);
s_low_reduce = in;for r = 1:rowfor c = 1:columnif mod(s_low_reduce(r,c),2) % 判断最低比特位是否为1s_low_reduce(r,c) = s_low_reduce(r,c) - 1; % 判断最低比特位置零endend
end% 显示图片
figure;
subplot(1,3,1);
imshow(in,[0 255]);
title('(a)华盛顿特区的红外线图像');subplot(1,3,2);
imshow(s_low_reduce,[0 255]);
title('(b)将图像(a)中的每个最低阶比特置0得到图像');subplot(1,3,3);
% 结果标定到[0 255]中
result = in - s_low_reduce;
result = result - min(result);
result = (L-1) * result ./ max(result);
imshow(result);
title('(c)两幅图像的差,为清楚旗舰,图像已标定为[0,255]');
  • 实验二的代码
% 对于增强差别的图像相减的实验 P44(2)
close all;clear all;clc;
% 读入图片
in_mask = imread('Fig0228(angiography_mask_image).tif');
in_live = imread('Fig0228(angiography_live_ image).tif');% 做差值
s_reduce = in_mask - in_live;% 对差值做增强
L = 256;
c = (L-1)/log(L-1);
s_reduce_augment = c * log(double(s_reduce) + 1);% 显示图像
figure;
subplot(1,4,1);
imshow(in_mask);
title('(a)模板图像');subplot(1,4,2);
imshow(in_live);
title('(b)活体图像');subplot(1,4,3);
imshow(mat2gray(s_reduce));
title('(c)图(a)和图(b)的差值图像');subplot(1,4,4);
imshow(mat2gray(s_reduce_augment));
title('(d)增强后的差值图像(采用对数变换增强)');

5.4 实验结果

在这里插入图片描述

实验一结果图

在这里插入图片描述

实验二结果图

六、算术操作:使用图片相乘和相除 P45

6.1 实验内容

实验①图片相乘、除达到去阴影的效果
试验②图片相乘实现ROI

6.2 文件目录结构

在这里插入图片描述

6.3 Matlab代码

  • 实验一的代码
% 使用图像相乘和相除来校正阴影 P45
close all;clear all;clc;
% 读入图像
in = imread('Fig0229(tungsten_filament_shaded).tif');
in_shadow = imread('Fig0229(tungsten_sensor_shading).tif');
s = double(in) .* (1.0 ./ double(in_shadow));
% 显示图像
figure;
subplot(1,3,1);
imshow(in);
title('(a)钨丝及其支撑物的阴影SEM图像,改图像放大了近130倍');subplot(1,3,2);
imshow(in_shadow);
title('(b)阴影模式');subplot(1,3,3);
imshow(mat2gray(s));
title('(c)图(b)的倒数与图(a)相乘的结果');
  • 实验二的代码
% 对感兴趣的区域的ROI操作 P46
close all;clear all;clc;
% 读入图像
in_mask = imread('Fig0230(dental_xray_mask).tif');
in = imread('Fig0230(dental_xray).tif');% 显示图像
figure;
subplot(1,3,1);
imshow(in);
title('(a)牙齿的X射线数字图像');subplot(1,3,2);
imshow(in_mask);
title('(b)使用填充物隔离牙齿的ROT模板');subplot(1,3,3);
in_mask(in_mask > 0) = 1;
imshow(mat2gray(in .* in_mask));
title('(c)图(a)和图(b)相乘的结果');

6.4 实验结果

在这里插入图片描述

实验一的结果

在这里插入图片描述

实验二的结果

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 猫头虎推荐:人类通向AGI之路 史上最重磅的20篇论文你值得学习
  • Docker快速入门指南
  • 简单介绍一下 git reflog
  • 10、MySQL-索引
  • centos7 启动python后端服务与停止服务的sh脚本
  • Django 自定义用户 VS 用户资料
  • SpringBoot排除默认日志框架
  • 机器学习知识点全面总结
  • VueRouter的使用
  • 可视化基础的设计四大原则
  • OpenCV图像滤波(5)二维卷积滤波函数filter2D()的使用
  • final finally finalize 区别?
  • 【多线程基础】指令、进程调度、了解计算机是如何进行工作的
  • TDengine Cloud 助力智源未来,引领能源管理革新
  • 服务器CPU架构有几种?分别应用到什么场景?有啥优缺点?
  • 【Leetcode】101. 对称二叉树
  • 【译】JS基础算法脚本:字符串结尾
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • java第三方包学习之lombok
  • mysql中InnoDB引擎中页的概念
  • nfs客户端进程变D,延伸linux的lock
  • webpack4 一点通
  • 基于组件的设计工作流与界面抽象
  • 开源SQL-on-Hadoop系统一览
  • 两列自适应布局方案整理
  • 爬虫模拟登陆 SegmentFault
  • 微信小程序填坑清单
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • ​VRRP 虚拟路由冗余协议(华为)
  • #数据结构 笔记三
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (2)nginx 安装、启停
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (3)llvm ir转换过程
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (分布式缓存)Redis持久化
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET 回调、接口回调、 委托
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET下的多线程编程—1-线程机制概述
  • @RequestParam详解
  • [16/N]论得趣
  • [Bada开发]初步入口函数介绍
  • [BUG]vscode插件live server无法自动打开浏览器
  • [BZOJ1089][SCOI2003]严格n元树(递推+高精度)
  • [CF543A]/[CF544C]Writing Code
  • [Docker]五.Docker中Dockerfile详解
  • [Editor]Unity Editor类常用方法
  • [go 反射] 进阶
  • [HOW TO]如何在iPhone应用程序中发送邮件
  • [JAVA设计模式]第二部分:创建模式
  • [Linux]history 显示命令执行的时间
  • [Linux安全运维] Nginx安装部署以及LNMP框架搭建保姆级教程