机器视觉及工程应用matlab实例分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

相关文档
最新文档