机器视觉及工程应用matlab实例分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
clear all;
clc;
%RGB分量显示(如图1所示)
I=imread('C:\Users\bjut\Desktop\机器视觉\北工大.jpg');%读取图片R=I(:,:,1);%图片中的红色元素存在R中
G=I(:,:,2);%图片中的绿色元素存在G中
B=I(:,:,3);%图片中的蓝色元素存在H中
figure(1)
subplot(2,2,1);%生成2*2个子图,当前激活第1个子图
imshow(I);%显示图片
title('原始图像');%图片标题
subplot(2,2,2);%生成2*2个子图,当前激活第2个子图
imshow(R);%显示图片
title('R分量图像');%图片标题
subplot(2,2,3);%生成2*2个子图,当前激活第3个子图
imshow(G);%显示图片
title('G分量图像');%图片标题
subplot(2,2,4);%生成2*2个子图,当前激活第4个子图
imshow(B);%显示图片
title('B分量图像');%图片标题
图1 RGB分量显示
%彩色直方图均衡化(如图2)
R1=histeq(R);%对各分量直方图均衡化,得到各分量均衡化图像
G1=histeq(G);
B1=histeq(B);
I1=cat(3,R,G,B);%创建三维矩阵,R为第一页,G为第二页,B为第三页HSV=rgb2hsv(I);%RGB转换成HSV
V=HSV(:,:,3);
V=histeq(V);%直方图均衡化
HSV(:,:,3)=V;%明亮度调节
I2=hsv2rgb(HSV); %HSV转换成RGB
figure(2);%显示图像
subplot(1,2,1);
imshow(I1);
title('RGB各分量均衡化');
subplot(1,2,2);
imshow(I2);
title('V分量均衡化');
图2 彩色直方图均衡化
%灰度图像伪彩色处理(如图3(a))
I=imread('C:\Users\bjut\Desktop\机器视觉\北工大灰度.jpg'); figure(3);
imshow(I);
title('灰度图像');
I=im2double(I);%图像数据转换成double型
[W,H]=size(I);
R=zeros(W,H);
G=zeros(W,H);
B=zeros(W,H);
L=1;
%设置色彩变换函数
for i=1:W
for j=1:H
if(I(i,j)>=L/2 &&I(i,j)<=3*L/4)
R(i,j)=4*(I(i,j)-L/2);%R分量变换函数
elseif I(i,j)>3*L/4
R(i,j)=1;
end
if I(i,j)<=L/4
G(i,j)=4*I(i,j);%G分量变换函数
elseif I(i,j)>=3*L/4
G(i,j)=1;
end
if I(i,j)<=L/4
B(i,j)=1;%B分量变换函数
elseif I(i,j)>3*L/4&&I(i,j)<=L/2
B(i,j)=-4*(I(i,j)-L/2);
end
end
end
J=cat(3,R,G,B);
figure(3);
imshow(J);
title('伪彩色图像');
%彩色图像取反(如图3(b))
K=imread('C:\Users\bjut\Desktop\机器视觉\北工大灰度.jpg');
IK=255-K;%图像取反
figure(4);%图片显示
subplot(1,2,2);
imshow(IK);
title('取反图像');
(a)(b)
图3 灰度图像伪彩色处理和彩色图像取反%图像饱和度调整
N=imread('C:\Users\bjut\Desktop\机器视觉\北工大.jpg');
HSV=rgb2hsv(N);%RGB转化成HSV
S=HSV(:,:,2);%饱和度调整
S1=S*2;
d=find(S1>1.0);
S1(d)=1.0;%饱和度乘上系数2
S2=S*0.5;%饱和度乘上系数0.5
HSV(:,:,2)=S1;
RGB1=hsv2rgb(HSV);%HSV转化成RGB
HSV(:,:,2)=S2;
RGB2=hsv2rgb(HSV);%HSV转化成RGB
figure(5);%显示图片
subplot(1,2,1);
imshow(RGB1);
title('饱和度乘上系数2');
subplot(1,2,2);
imshow(RGB2);
title('饱和度乘上系数0.5');
图4 图像饱和度调整
%图像分割(如图5)
Q=imread('C:\Users\bjut\Desktop\机器视觉\北工大.jpg');
[M,N,t]=size(Q);
I1=Q;
I2=Q;
for i=1:M
for j=1:N
if I(i,j,1)>210&&I(i,j,2)>210&&I(i,j,3)>210
I1(i,j,1)=255;%设置分割函数
I1(i,j,2)=255;
I1(i,j,3)=255;