matlab图像处理

这篇具有很好参考价值的文章主要介绍了matlab图像处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.图片的读取(下左)

I=imread('可爱猫咪.jpg');%图像读取,这里''内为'路径\名称',如:'E:\examples\可爱猫咪.jpg'
figure,imshow(I);%图像显示
title('原图')

 系统学习matlab图像处理,matlab,图像处理,计算机视觉,人工智能系统学习matlab图像处理,matlab,图像处理,计算机视觉,人工智能

2.转为灰度图像(上右)

I_gray=rgb2gray(I);
figure,imshow(I_gray);
title('灰度图像')

查看是否是灰度图像的一个方法:

disp('输出字符串')%输出字符串;

ndims()%输出矩阵维度,这里灰度图像或二值图像矩阵维度都为2,彩色图像为3。所以无法判断是灰度图像还是二值图像。之前matlab有函数isgray(),现在被移除了,就用如下办法将就吧。

imwrite(I,'I_gray.jpg')%将I保存为名为I_gray的.jpg图像.

if(ndims(I)==2)
    disp('是灰度图');
    imwrite(I,'I_gray.jpg')
else 
    disp('不是灰度图')
    Ig=rgb2gray(I);%转为灰度图Ig
    imwrite(Ig,'I_gray.jpg')
end

 3.线性扩展

a=0.6;
b=1;
c=0.5;
d=0.8; 
J=imadjust(I,[a;b],[c;d]);
subplot(1,2,1);%画布1行2列,放在第一个
imshow(J);
title('线性扩展');

4.非线性扩展

C=1.5;
K=C*log(1+((double(I))/255));%图像归一化处理
subplot(1,2,2);%画布1行2列,放在第二个
imshow(K);
title('非线性扩展');

系统学习matlab图像处理,matlab,图像处理,计算机视觉,人工智能

 5.二值化

N1=im2bw(I,0.4);
N2=im2bw(I,0.7);
subplot(1,2,1);
imshow(N1);
subplot(1,2,2);
imshow(N2);

系统学习matlab图像处理,matlab,图像处理,计算机视觉,人工智能6.缩放

a=imresize(I,1.5);%按比例放大到1.5倍
b=imresize(I,[420,384]);%非比例
c=imresize(I,0.7);%按比例缩小到0.7倍
d=imresize(I,[150,80]);
subplot(2,2,1);
imshow(a);
title('a');
subplot(2,2,2);
imshow(b);
title('b');
subplot(2,2,3);
imshow(c);
title('c');
subplot(2,2,4);
imshow(d);
title('d');

系统学习matlab图像处理,matlab,图像处理,计算机视觉,人工智能

 (噢,猫猫~)

 7.旋转

K=imrotate(I,45);
subplot(1,2,1);
imshow(K);
title('旋转45度');
L=imrotate(I,180);
subplot(1,2,2);
imshow(L);
title('旋转180度');

系统学习matlab图像处理,matlab,图像处理,计算机视觉,人工智能

 8.线检测

此处代码为检测水平方向的线,可根据注释模板替换检测垂直等方向的线


I=im2bw(I,0.7);%此处应先将图像二值化或转为灰度图像

w=[-1 -1 -1; 2 2 2; -1 -1 -1];%水平
% w=[-1 -1 2; -1 2 -1; 2 -1 -1];%垂直
% w=[-1 2 -1; -1 2 -1; -1 2 -1];%45度
% w=[2 -1 -1; -1 2 -1; -1 -1 2];%-45度

g=imfilter(double(I), w);
figure,subplot(2,3,1);
imshow(g,{})  % 滤波后图像
title('水平-滤波')

g=abs(g);
subplot(2,3,2);
imshow(g,{})
title('g=abs(g)')

T=max(g(:));
g=g>=T;
subplot(2,3,3);
imshow(g)
title('阈值为T')

T=(1/3)*max(g(:));
g=g>=T;
subplot(2,3,4);
imshow(g)
title('阈值为1/3最大值')

T=(2/3)*max(g(:));
g=g>=T;
subplot(2,3,5);
imshow(g)
title('阈值为2/3最大值')

系统学习matlab图像处理,matlab,图像处理,计算机视觉,人工智能

掩模例:

系统学习matlab图像处理,matlab,图像处理,计算机视觉,人工智能

9.边缘检测

        edge()函数

        如:BW = edge(I,'prewitt',THRESH,DIRECTION) 表示对图像I,用prewitt方法;

        THRESH:规定了普鲁伊特prewitt方法的灵敏度阈值。边缘忽略所有不强于THRESH的边缘。如果你没有指定THRESH,或者THRESH为空, edge 会自动选择这个值。

         DIRECTION:寻找 "水平horizontal "或 "垂直 vertical"边缘,或 "两者"(默认)。

测试三种method,Canny,Prewitt,Sobel

I_gray=rgb2gray(I);%此处应先将图像二值化或转为灰度图像
a=edge(I_gray,'Canny');
b= edge(I_gray,'Prewitt');
c=edge(I_gray,'Sobel');
subplot(1,3,1);
imshow(a);
title('Canny');
subplot(1,3,2);
imshow(b);
title('Prewitt');

subplot(1,3,3);
imshow(c);

title('Sobel');

系统学习matlab图像处理,matlab,图像处理,计算机视觉,人工智能测试不同方向和不同阈值:


A=edge(I_gray,'Prewitt',0.02,'horizontal');
B=edge(I_gray,'Prewitt',0.15,'horizontal');
C=edge(I_gray,'Prewitt',0.02,'vertical');
D=edge(I_gray,'Prewitt',0.1,'vertical');
subplot(2,2,1);
imshow(A);
subplot(2,2,2);
imshow(B);
subplot(2,2,3);
imshow(C);
subplot(2,2,4);
imshow(D);

系统学习matlab图像处理,matlab,图像处理,计算机视觉,人工智能

10.归一化直方图和累积直方图

I=imread('可爱猫咪.jpg');
set(gcf, 'Position', [20 70 900 600], 'color','y'); 
subplot(1,3,1),imshow(I),title('原图')
N=50;
Hist_image=imhist(img_gray,N); % 计算直方图
Hist_image=Hist_image/sum(Hist_image); % 计算归一化直方图
Hist_image_cumulation=cumsum(Hist_image); % 计算累计直方图
subplot(1,3,2),stem(0:N-1,Hist_image),title('直方图')
subplot(1,4,3),stem(0:N-1,Hist_image_cumulation),title('累计直方图')

这里为二次编辑,将图片裁剪为方形了。

set(gcf, 'Position', [20 70 900 600], 'color','y'); 

设置了figure位置:起始坐标为(20 ,70 ),宽度900,高度600像素。'color','y' 设置了图片背景为黄色 ,默认白色。('r'是红色,'b'是蓝色,'w'白色)

系统学习matlab图像处理,matlab,图像处理,计算机视觉,人工智能

11. 直方图的均衡化

I=imread('可爱猫咪.jpg');
I_gray=rgb2gray(I);
subplot(2,4,1),imshow(I_gray),title('原始图像')
subplot(2,4,5),imhist(I_gray),title('原图像直方图')
N=30;
g=histeq(I_gray,N); % histeq 均衡化函数
subplot(2,4,2),imshow(g),title('直方图均衡后图像(N=30)')
subplot(2,4,6),imhist(g),title('均衡化后直方图(N=30)')
N=256;
g=histeq(I_gray,N); % histeq 均衡化函数
subplot(2,4,3),imshow(g),title('直方图均衡后图像(N=256)')
subplot(2,4,7),imhist(g),title('均衡化后直方图(N=256)')
N=2048;
g=histeq(I_gray,N); % histeq 均衡化函数
subplot(2,4,4),imshow(g),title('直方图均衡后图像(N=2048)')
subplot(2,4,8),imhist(g),title('均衡化后直方图(N=2048)')

系统学习matlab图像处理,matlab,图像处理,计算机视觉,人工智能12规定化直方图

I=imread('可爱猫咪.jpg');
I_gray=rgb2gray(I);
subplot(3,3,1),imshow(I_gray),title('原始图像')
subplot(3,3,7),imhist(I_gray),title('原图像直方图')
%幂函数变换直方图
Index=0:N-1;
Hist{1}=exp(-(Index-15).^2/8);  % 4
Hist{1}=Hist{1}/sum(Hist{1});
Hist_cumulation{1}=cumsum(Hist{1});
subplot(3,3,5),stem(0:N-1,Hist{1}),title('幂函数变换直方图')
% log函数直方图
Index=0:N-1;
Hist{2}=log(Index+20)/60;  % 15
Hist{2}=Hist{2}/sum(Hist{2});
Hist_cumulation{2}=cumsum(Hist{2});
subplot(3,3,6),stem(0:N-1,Hist{2}),title('log函数变换直方图')
 
% 规定化处理
for m=1:2
    Image=I_gray;
    for k=1:N
        Temp=abs(Hist_image_cumulation(k)-Hist_cumulation{m});
        [Temp1, Project{m}(k)]=min(Temp);
    end
    % 变换后直方图
    for k=1:N
        Temp=find(Project{m}==k); 
        if isempty(Temp)
            Hist_result{m}(k)=0;
        else
            Hist_result{m}(k)=sum(Hist_image(Temp));
        end
    end
    subplot(3,3,m+7),stem(0:N-1,Hist_result{m}),title('变换后直方图')
    % 结果图
    Step=256/N;
    for k=1:N
        Index=find(I_gray>=Step*(k-1)&I_gray<Step*k);
        Image(Index)=Project{m}(k); 
    end
    subplot(3,3,m+1),imshow(Image,[]),title('变换后图像')
end

系统学习matlab图像处理,matlab,图像处理,计算机视觉,人工智能

持续更新......文章来源地址https://www.toymoban.com/news/detail-779089.html

到了这里,关于matlab图像处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计算机视觉】数字图像处理(六)—— 图像压缩

    (一)、图像编码技术的研究背景 1. 信息信息传输方式发生了很大的改变 通信方式的改变 文字+语音 图像+文字+语音 通信对象的改变 人与人 人与机器,机器与机器 2. 图像传输与存储需要的信息量空间 (1)彩色视频信息 对于电视画面的分辨率640 480的彩色图像,每秒30帧,

    2024年02月05日
    浏览(57)
  • 【计算机视觉】数字图像处理(四)—— 图像增强

    图像增强是采用一系列技术去改善图像的视觉效果,或将图像转换成一种更适合于人或机器进行分析和处理的形式。例如采用一系列技术有选择地突出某些感兴趣的信息,同时抑制一些不需要的信息,提高图像的使用价值。 图像增强方法 图像增强方法从增强的作用域出发,可

    2023年04月16日
    浏览(83)
  • 计算机视觉学习笔记(图像的灰度与灰度级 图像的深度 图像噪声 图像处理)

    如果把白色和黑色之间按对数关系分为若干等级,称为灰度,灰度分为256阶,0为黑色,灰度就是没有色彩,RGB色彩分量全部相等(150,150,150)就代表灰度为150. 一幅图像中不同位置的亮度是不一样的,可用f(x,y)来表示(x,y)上的亮度。由于光是一种能量形式,因此亮度是非负

    2024年02月01日
    浏览(40)
  • 计算机视觉——图像处理基础

    随着计算机视觉的不断发展,图像的预处理成为分析图像的必然前提,本文就介绍图像处理的基础内容。 图像中,高频部分是图像中像素值落差很大的部分,如图像边缘,该部分的有用信息经常被噪声淹没。降低高频段的噪声是设计图像滤波器的关键。 图像滤波器就是一个

    2024年01月19日
    浏览(47)
  • 计算机图形图像技术(OpenCV核心功能、图像变换与图像平滑处理)

    1、显示图像 ①功能:在指定窗口中显示图像。 ②参数: name 为窗口的名字; image 为待显示的图像。 ③说明:可显示彩色或灰度的字节图像和浮点数图像,彩色图像数据按BGR顺序存储。 2、读入图像 ①功能:从指定文件读入图像。 ②参数: filename 为图像文件名,支持BMP、

    2024年02月03日
    浏览(37)
  • 图像去雨-雨线清除-图像处理-(计算机作业附代码)

    多年来,图像去雨已经被广泛研究,使用传统方法和基于学习的方法。然而,传统方法如高斯混合模型和字典学习方法耗时,并且无法很好地处理受到严重雨滴影响的图像块。 通过考虑雨滴条状特性和角度分布,这个问题可以得到很好的解决。在本文中,通过引入任意方向的

    2024年02月12日
    浏览(39)
  • 图像处理与计算机视觉--第五章-图像分割-Canny算子

    2.1.Canny算子简单介绍 Canny算子是一种非常常用的边缘检测算子,其效果图如下所示: 2.2.Canny算子边缘检测指标 Canny算子是基于边缘检测来实现的,那么边缘检测的指标如下所示: (1)好的信噪比,即将非边缘点判定为边缘点的概率要低。 (2)高定位,检测出的边缘要在实际边缘中

    2024年02月07日
    浏览(41)
  • 图像处理与计算机视觉算法

    图像处理与计算机视觉算法是实现对图像和视频内容分析、理解和操作的一系列技术。这些算法可以分为多个类别,包括但不限于以下几个主要方面: 预处理 : 像素操作:灰度化、二值化、直方图均衡化等,用于改善图像的对比度和亮度分布。 去噪:高斯滤波、中值滤波、

    2024年02月22日
    浏览(40)
  • 图像处理与计算机视觉--第五章-图像分割-自适应阈值分割

      在图片处理过程中,针对铺前进行二值化等操作的时候,我们希望能够将图片相应区域内所有的信息提供保留。实验室环境下,相应的素材是模板化的,但是将实验室方法应用于现实环境中时,我们会发现光影环境对于效果的影响其实是很大的。在这种情况下进行处理,

    2024年02月07日
    浏览(35)
  • 计算机视觉图像处理常用方法汇总

    光线进入眼睛:当光线从一个物体反射或散射出来,进入人的眼睛时,它们通过角膜和晶状体进入眼球内部。 聚焦光线:角膜和晶状体将光线聚焦在视网膜上。晶状体可以通过调整其形状来调节聚焦距离,使物体的图像清晰地映射在视网膜上。 光敏细胞感受光线:视网膜是

    2024年02月07日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包