学习笔记-Matlab算法篇-图像处理

2023-11-11

图像处理

01图像基本处理

%%Matlab读取图片:
>> mat=imread('pic1.png');
>> imshow(mat)
>> size(mat)
ans =

   906   947     3

图像转换函数:

• gray2ind - intensity image to index image

• im2bw - image to binary

• im2double - image to double precision

• im2uint8 - image to 8-bit unsigned integers

• im2uint16 - image to 16-bit unsigned integers

• ind2gray - indexed image to intensity image

• mat2gray - matrix to intensity image

• rgb2gray - RGB image to grayscale

• rgb2ind - RGB image to indexed image

>> I=imread('pic1.png');
>> figure,imshow(I);
>> gI=rgb2gray(I);
>> [X,map]=gray2ind(gI,16);
>> figure,imshow(X,map);
>> figure,imshow(gI);

结果:

>> [X,map]=gray2ind(gI,8);
>> imshow(X,map)

                                            

>> [X,map]=gray2ind(gI,256);
>> imshow(X,map)

                                         

>>  bI=im2bw(gI,0.5);
>> imshow(bI);

                                                  

图像相加:  


>> I0=imread('pic3.png');
>> I1=imread('pic3-1.png');
>> I2=imread('pic3-2.png');
>> I3=imread('pic3-3.png');
>> figure,image(I1),truesize,title('I1-image'),xlabel('I1')
>> figure,image(I2),truesize,title('I2-image'),xlabel('I2')
>> figure,image(I3),truesize,title('I3-image'),xlabel('I3')
>> mI=uint8(double(I1)+double(I2)+double(I3));
>> figure,image(mI),truesize,title('mI-image'),xlabel('mI')

将三张残缺的图叠加:

结果:

强度转换:

>> aI2=imadjust(I0,[],[],0.5);
>> figure,imshow(aI2)
>> aI3=imadjust(I0,[],[],2);
>> figure,imshow(aI3)
>> aI1=imadjust(I0,[0,1],[1,0]);
>> figure,imshow(aI1)

结果:

统计直方图 :

>> imhist(I0)
>> figure,imshow(I0)

图像放大:最近邻重采样

                                     

p=3;q=5;
I0=imread('pic3.png');
ii=1;
I1=zeros(round(size(I0,1)*p/q),round(size(I0,2)*p/q),3);
for i=1:q:size(I0,1)-1
  jj=1;
  for j=1:q:size(I0,2)-1
    I1(ii:ii+p-1,jj:jj+p-1,:)=double(I0(i:2:i+q-1,j:2:j+q-1,:));
    jj=jj+p;
  end
  ii=ii+p;
end
figure
image(I0)
% truesize
figure
image(uint8(I1))
% truesize
size(I0),size(I1)

图像放大:双线性插值

 

I=imread('pic1.png');
I=I0;
I0=double(I0);
I1=zeros(size(I0,1)*2,size(I0,2)*2,3);
[r,c]=meshgrid(1:size(I0,2),1:size(I0,1));
rc=linspace(1, size(I,1), size(I,1)*2);
cc=linspace(1, size(I,2), size(I,2)*2);
[r_new,c_new]=meshgrid(cc,rc);
rc=linspace(1, size(I0,1), size(I0,1)*2);
cc=linspace(1, size(I0,2), size(I0,2)*2);
[r_new,c_new]=meshgrid(cc,rc);
I1(:,:,1)=interp2(r,c,I0(:,:,1),r_new,c_new,'spline');
I1(:,:,2)=interp2(r,c,I0(:,:,2),r_new,c_new,'spline');
I1(:,:,3)=interp2(r,c,I0(:,:,3),r_new,c_new,'spline');
imshow(uint8(I1))
size(I1)

 02图像降噪

噪声类型:白噪声、椒盐噪声等

>> I0=imread('pic3.png');
figure,imshow(I0)
nI = imnoise(I0, 'salt & pepper', 0.01);
figure,imshow(nI)
nII = imnoise(I0, 'gaussian', 0.01);
figure,imshow(nII)

 非线性滤波降噪:均值滤波

I=imread('pic3.png');
I0=rgb2gray(I);
nII = imnoise(I0, 'gaussian', 0.01);
aI=imfilter(nII,fspecial('average',[3,3]));
figure,imshow(nII),figure,imshow(aI)

I=imread('pic3.png');
I0=rgb2gray(I);
nII = imnoise(I0, 'salt & pepper', 0.01);
aI=imfilter(nII,fspecial('average',[3,3]));
figure,imshow(nII),figure,imshow(aI)

非线性滤波降噪:均值滤波 

I=imread('pic3.png');
I0=rgb2gray(I);
nII = imnoise(I0, 'salt & pepper', 0.01);
k2=medfilt2(nII ,[5,5]);
figure,imshow(nII),figure,imshow(k2)


 03图像边缘

点检测:使用滤波算子:

                                                                     

添加异常点:

I0=imread('pic3.png');
I0(100:105,800:808,:)=0;
figure,imshow(I0)

 检测异常点

w=[-1 -1 -1;-1 8 -1;-1 -1 -1];
g=abs(imfilter(I0,w));
T=max(g(:));
g=(g>=T);
imshow(uint8(g))

 

直线检测算子:

 

f=imread('pic4.png');
figure,imshow(f);
w = [2 -1 -1; -1 2 -1;-1 -1 2 ];
g = imfilter(double(f),w);
figure,imshow(g)
gtop = g(1:120,1:120);
figure , imshow(gtop)
gbot = g(end-119:end, end-119:end);
figure,imshow(gbot)
g = abs(g);
figure,imshow(g)
T = max (g(:));
g = g >= T;
figure, imshow(g)

 

边缘检测:梯度算子:拉普拉斯算子

                                             

                                                                

                  

边缘检测:梯度算子:Sobel算子

                          

边缘检测:Canny算子

边缘检测:2D高斯算子

I=imread('pic4.png');
I0=rgb2gray(I);
subplot(231);
imshow(I);

BW1=edge(I0,'Roberts',0.16);
subplot(232);
imshow(BW1);
title('Roberts')


BW2=edge(I0,'Sobel',0.16);
subplot(233);
imshow(BW2);
title('Sobel')

BW3=edge(I0,'Prewitt',0.16);
subplot(234);
imshow(BW3);


title('Prewitt');

BW4=edge(I0,'LOG',0.012);
subplot(235);
imshow(BW4);
title('LOG')




BW5=edge(I0,'Canny',0.2);
subplot(236);
imshow(BW5);
title('Canny');


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习笔记-Matlab算法篇-图像处理 的相关文章

  • 基于Matlab开发的动态机器人轨迹仿真

    基于Matlab开发的动态机器人轨迹仿真 近年来 机器人技术的发展已经进入了高速发展时期 控制与仿真技术作为机器人领域中至关重要的一环 也随之发展壮大 而在动态机器人轨迹仿真方面 Matlab作为一款具备强大数学计算能力的软件 在该领域中得
  • 基于Matlab的量子粒子群算法优化单目标问题

    基于Matlab的量子粒子群算法优化单目标问题 量子粒子群算法 Quantum Particle Swarm Optimization QPSO 是一种基于自然界粒子群群体智能算法的优化方法 QPSO算法通过引入量子力学的概念 将传统粒子群
  • GUI设计篇

    一 Matlab GUIDE 在MATLAB的命令行窗口中键入guide可以打开GUIDE 这个命令将打开GUIDE Quick Start对话框 它可以看作是一个简单的GUI应用程序的开发向导 利用它可以使用鼠标方便地在窗体上添加各种各样
  • 学习笔记-Matlab三维绘图

    三维绘图 plot3 x y z t 0 0 05 15 x exp 0 05 t cos 2 t y exp 0 05 t sin 2 t z t figure plot3 x y z xlabel x meters ylabel y m
  • MATLAB画图练习

    这次画一些在数学建模中比较实用的图 掌握了其中的画图技巧 在比赛时改变一些参数就可以套用了 1 画极坐标图 clc clear clf theta 0 0 01 2 pi r 5 cos 10 theta polar theta r 2 画
  • 显著区域和非显著区域特征提取Matlab实现

    显著区域和非显著区域特征提取Matlab实现 在图像处理和计算机视觉中 显著区域和非显著区域的提取是一项非常重要的任务 它可以帮助我们更好地理解图像并提供更有效的信息 在本文中 我们将介绍如何使用Matlab实现显著区域和非显著区域的提取
  • Matlab坐标变换篇

    一 安装Robotics System Toolbox 二 弄懂左乘和右乘 介绍的第一个函数为欧拉 齐次矩阵 左手坐标系下 中指对着自己为x轴 z轴为拇指 T0 eul2tr 0 0 0 基坐标系 Tx transl 5 0 0 xyz T
  • Matlab—频谱分析作图

    clf fs 50 采样频率 每秒钟采样多少个点 N 60 采样点数量 T N fs 采样时间 n 0 N 1 t n fs 时间序列 f n fs N 频率序列 y1 10 sin 2 pi 15 t y2 10 sin 2 pi 20
  • 基于AR模型的数据预测及Matlab实现

    基于AR模型的数据预测及Matlab实现 自动回归 AR 模型是一种常见的时间序列分析方法 它基于过去一段时间的数据 预测未来的数值走势 本文将介绍如何使用基于AR模型的方法来预测数据 并提供相应的Matlab源代码 首先 我们需要了解AR
  • 鲸鱼优化算法——使用Python实现

    鲸鱼优化算法 使用Python实现 鲸鱼优化算法是一种新兴的优化算法 它受到鲸鱼集群捕猎行为的启发 该算法具有全局搜索能力和收敛速度快等优点 在多个领域中得到了广泛应用 本文将介绍使用Python实现鲸鱼优化算法 并提供源代码 鲸鱼优化算法
  • 【图像处理】MATLAB:亮度变换

    亮度变换 函数imadjust f imread breast digital Xray tif g1 imadjust f 0 1 1 0 阴暗反转图像 负片图像 等同于 g1 imcomplement f g2 imadjust f 0
  • 机器人路径规划的算法有很多种,其中RRT算法是其中一种比较流行的算法之一

    机器人路径规划的算法有很多种 其中RRT算法是其中一种比较流行的算法之一 在这篇文章中 我们将为大家介绍如何使用Matlab实现基于RRT算法的机器人最短路径规划 并附上相应的源代码 我们首先需要明确RRT算法的基本思路 RRT全称为Rap
  • Matlab Simulink 常用快捷操作和功能(1)

    1 快速查找library里面的模块 双击左键 然后输入要查询的模块名称 gt 2 block 和 signal 的命名修改 单击block 显示 修改名字 3 Simulink支持从块参数对话框中创建变量 可以在Simulink中创建MA
  • 学习笔记-Matlab算法篇-插值算法

    插值算法 01拉格朗日多项式插值 进而得到拉格朗日多项式 Matlab求解 matlab中没有自带的求解函数 需要自行实现 function f Language x y x0 syms t if length x length y n l
  • (每日一练)MATLAB数据拟合

    今天就的学习内容是数据拟合 数据拟合也称为曲线拟合 是一种把现有数据透过数学方法来代入一条数式的表示方式 科学和工程问题可以通过诸如采样 实验等方法获得若干离散的数据 根据这些数据 我们往往希望得到一个连续的函数 也就是曲线 或者更加密集的
  • 永磁同步电机(PMSM)磁场定向控制(FOC)电流环PI调节器参数整定

    文章目录 前言 一 调节器的工程设计方法 二 电流环PI调节器的参数整定 2 1 电流环的结构框图 2 2 典型I型系统 2 3 电流环PI参数整定计算公式 三 电流环PI调节器设计实例 3 1 永磁同步电机磁场定向的电流闭环控制 3 2
  • 学习笔记-Matlab算法篇-图像处理

    图像处理 01图像基本处理 Matlab读取图片 gt gt mat imread pic1 png gt gt imshow mat gt gt size mat ans 906 947 3 图像转换函数 gray2ind intensi
  • 基于Matlab的贝叶斯网络优化卷积神经网络结合门控循环单元(CNN-GRU)的预测

    基于Matlab的贝叶斯网络优化卷积神经网络结合门控循环单元 CNN GRU 的预测 在深度学习领域 卷积神经网络 Convolutional Neural Networks CNN 和门控循环单元 Gated Recurrent Unit
  • matlab中的mod和rem的异同

    rem和mod是求余的 但是算法不同 差异在哪呢 就在于分别使用了fix和floor 函数fix和floor都是圆整用的 fix是向0的方向圆整 如fix 1 5 1 fix 1 5 1 而floor是向下圆整 如floor 1 5 2 f
  • 学习笔记-Matlab算法篇-图与网络

    图与网络 01基本概念 介绍 图分为无向图和有向图 一个无向图 undirected graph G是由一个非空有限集合 V G 和V G 中某些元素的无序对集合E G 构成的二元组 记为G V G E G V G 称为顶点集 E G 称为

随机推荐

  • Unity脚本设置Animator单个状态的speed

    Unity脚本设置Animator单个状态的speed 直接上代码 private Animator anim private AnimatorController animController private void Awake ani
  • KMP算法详解

    什么是KMP算法 有句话可以这么形容KMP 一个人能走的多远不在于他在顺境时能走的多快 而在于 他在逆境时多久能找到曾经的自己 KMP算法是一个字符串匹配算法 取得是三个发明人的名字首字母 KMP算法的作用 是在一个已知字符串中查找子串的位
  • ide sonar代码审查问题总结

    格式 问题名字 问题出现的次数 Resources should be closed2 资源未关闭 打开发现有两处用到的IO流没有关闭 Conditions should not unconditionally evaluate to TR
  • php mail函数详解,php中mail()函数用法和SMTP工作原理详解

    一个发送E MAIL的脚本也许是你能够在Web 站点上找到的最普通的脚本之一了 虽然它很简单 一个邮件脚本有时会令程序员非常沮丧 PHP中有一个叫做mail 的函数 它只需要知道接收方的地址 和信件主体就可以发送邮件 但是要让mail 按你
  • 【SQLServer】查询SQLServer执行过的SQL记录

    直接贴代码 SELECT TOP 1000 创建时间 QS creation time 查询语句 SUBSTRING ST text QS statement start offset 2 1 CASE QS statement end o
  • Error in mounted hook: “TypeError: Cannot read properties of undefined (reading ‘split‘)“

    我在用vue写页面的时候 其中附件功能是写成组件模式的 然后在调用后 把数据渲染上去的时候 就会报错 具体错误如下图所示 到后面虽然数据确实是渲染出来了 但是控制台会报Error in mounted hook TypeError Cann
  • 100天精通Python(爬虫篇)——第43天:爬虫入门知识大总结

    文章目录 一 爬虫概述 1 为什么要学习爬虫 2 爬虫与Python 3 爬虫合法吗 4 爬虫的矛与盾 5 爬虫原理图 and 流程图 二 相关技术介绍 1 HTML 与 CSS 2 URL网址解释 3 HTTP 与 HTT S 1 常见请
  • Knights of the Round Table【点双连通分量与二分图】

    题目链接 POJ 2942 题意 亚瑟王要给骑士们开会啦 有N个骑士 其中有M对骑士相互之间会吵架 亚瑟王不允许相互吵架的骑士坐在一起 但是他们可以一同坐在餐桌上 只要隔开就可以了 还有就是 出席会议的骑士数必须是奇数 这是为了让投票表决议
  • 海伯利安:开放地图生态的未来与机遇

    本文选自海伯利安CTO邹光先大会演讲 全文如下 前两天有朋友问了我一个问题 他说谷歌地图在全世界覆盖那么广 用户量也非常大 用户体验也很好 在地图这个赛道上 海伯利安的创新和机会在哪里 这是个好问题 值得反复思考 深入思考 结合我们对地图行
  • Maven的配置、安装及测试可用

    1 配置环境变量的话 配置用户变量和系统变量也没差 反正电脑都是一个人使用 先配置M2 HOME 配置MAVEN HOME也可以 我放置Maven的路径是D Program Files x86 apache maven 3 2 2 具体要看
  • 程序的几种结构

    目录 顺序结构 选择结构 循环结构 break和continue的区别 顺序结构 选择结构 表达式 单选结构 if boolean表达式 执行语句 表达式为true执行相应的语句 否则不执行 双选结构 if boolean表达式 执行语句1
  • 小程序语音识别用户体验优化

    文章由来 这里通过简单的对话形式来描述接下来要讲的bug 相关界面在文章中都有展示 可以结合相关图片更好的理解问题 测试小伙伴 界面一直停留在 语音识别中 我 都到识别这一步了 应该是测试环境下后台不稳定吧 你再多试几次 测试小伙伴 我去问
  • 爬虫的操作

    目录 爬虫基本 re etree beautifulsoup 保存本地 连接数据库 基本 re lxml etree beautifulsoup 保存到本地 传入数据库 大致分为 爬虫基本 re etree beautifulsoup 保存
  • 分布式思维

    说在前面的话 Java编程里有两座大山 高可用 高并发 而分布式无疑是翻越这两座大山最好的方式 本篇文章讲的是分布式思维 目的是为了帮助大家在学习分布式之前对某些分布式领域里的一些概念做了解 在脑海里对分布式有个整体的认识 不会针对某一项技
  • 卷积神经网络中的 “全连接层”

    文章目录 一 什么是 全连接层 二 详解 一 什么是 全连接层 对 n 1 层和 n 层而言 n 1 层的任意一个节点 都和第 n 层所有节点有连接 即第n层节点都和第n 1层节点相连接 即第n层的每个节点在进行计算的时候 激活函数的输入是
  • django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but setting

    django core exceptions ImproperlyConfigured Requested setting DEFAULT INDEX TABLESPACE but settings are not configured Y
  • JSP+Servlet+JavaBean

    JSP相当于在HTML页面中加上Java代码 一般在标签中放入主要代码 在JSP里用把Java代码包含起来的 Servlet的生命周期 被服务器实例化后 容器运行init方法 当请求 Request 到达时 运行service方法 serv
  • 扩散模型实战(二):扩散模型的发展

    推荐阅读列表 扩散模型实战 一 基本原理介绍 扩散模型从最初的简单图像生成模型 逐步发展到替代原有的图像生成模型 直到如今开启 AI 作画的时代 发展速度可谓惊人 下面介绍一下2D图像生成相关的扩散模型的发展历程 具体如下 开始扩散 基础扩
  • 一个B类地址,它的子网掩码为255.255.224.0,能划分多少个子网

    From http hi baidu com hzmdesky blog item ec97fc1bc9ce8f148718bf57 html cmtid ce50e26e27e192d481cb4ade 一个B类地址 它的子网掩码为255
  • 学习笔记-Matlab算法篇-图像处理

    图像处理 01图像基本处理 Matlab读取图片 gt gt mat imread pic1 png gt gt imshow mat gt gt size mat ans 906 947 3 图像转换函数 gray2ind intensi