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转换成HSVV=HSV(:,:,3);V=histeq(V);%直方图均衡化HSV(:,:,3)=V;%明亮度调节I2=hsv2rgb(HSV); %HSV转换成RGBfigure(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:Wfor j=1:Hif(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/4R(i,j)=1;endif I(i,j)<=L/4G(i,j)=4*I(i,j);%G分量变换函数elseif I(i,j)>=3*L/4G(i,j)=1;endif I(i,j)<=L/4B(i,j)=1;%B分量变换函数elseif I(i,j)>3*L/4&&I(i,j)<=L/2B(i,j)=-4*(I(i,j)-L/2);endendendJ=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转化成HSVS=HSV(:,:,2);%饱和度调整S1=S*2;d=find(S1>1.0);S1(d)=1.0;%饱和度乘上系数2S2=S*0.5;%饱和度乘上系数0.5HSV(:,:,2)=S1;RGB1=hsv2rgb(HSV);%HSV转化成RGBHSV(:,:,2)=S2;RGB2=hsv2rgb(HSV);%HSV转化成RGBfigure(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:Mfor j=1:Nif I(i,j,1)>210&&I(i,j,2)>210&&I(i,j,3)>210I1(i,j,1)=255;%设置分割函数I1(i,j,2)=255;I1(i,j,3)=255;I2(i,j,1)=255;I2(i,j,2)=0;I2(i,j,3)=0;elseI1(i,j,1)=255;I1(i,j,2)=0;I1(i,j,3)=0;endendendfigure(6);%显示图像subplot(131);imshow(Q);title('原始图像');subplot(132);imshow(I1);title('分割区域');subplot(133);imshow(I2);title('分割之后');图5 图像分割%高通滤波(如图6)GT=imread('C:\Users\bjut\Desktop\机器视觉\北工大.jpg');%读取RGB图像GT=rgb2gray(GT);%灰度处理subplot(1,2,1);%显示原图imshow(GT);title('原始图像');f=double(GT);%数据类型转换k=fft2(f);%傅里叶变换g=fftshift(k);[M,N]=size(g);nn=2;%二阶巴特沃斯高通滤波d0=25;%截止频率为25m=fix(M/2);n=fix(N/2);for i=1:M%计算传递函数for j=1:Nd=sqrt((i-m)^2+(j-n)^2);if(d==0)h=0;elseh=1/(1+0.414*(d0/d)^2);endresult(i,j)=h*g(i,j);endendresult=ifftshift(result);J2=ifft2(result);J3=uint8(real(J2));figure(7)subplot(1,2,2);imshow(J3);title('高通滤波');图6 高通滤波%中值滤波去噪(如图7)ZZ=imread('C:\Users\bjut\Desktop\机器视觉\北工大.jpg'); ZZ=imnoise(ZZ,'salt & pepper',0.04);%添加椒盐噪声subplot(1,2,1);imshow(ZZ);title('椒盐噪声图像');ZZ=rgb2gray(ZZ);%转换图像类型image=double(ZZ);[m,n]=size(ZZ);u=zeros(1,9);%进行中值滤波for i=2:m-1for j=2:n-1u(1)=image(i,j);u(2)=image(i,j+1);u(3)=image(i-1,j+1);u(4)=image(i-1,j);u(5)=image(i-1,j-1);u(6)=image(i,j-1);u(7)=image(i+1,j-1);u(8)=image(i+1,j);u(9)=image(i+1,j+1);for p=1:8for q=1:8-pif u(q)>u(q+1)k=u(q);u(q)=u(q+1);u(q+1)=k;endendendrimage(i,j)=u(5);endendsubplot(1,2,2);rimage=uint8(rimage);%转换成8位无符号整数imshow(rimage);title('中值滤波');图7 中值滤波去噪%低通滤波(如图8)DT=imread('C:\Users\bjut\Desktop\机器视觉\北工大.jpg'); DT=rgb2gray(DT);%灰度处理DT2=imnoise(DT,'salt & pepper',0.05);%叠加椒盐噪声subplot(1,2,1);imshow(DT2);title('噪声图像');f=double(DT2);%数据类型转换k=fft2(f);%傅里叶变换g=fftshift(k);[N1,N2]=size(g);n=2;%构造指数低通滤波器进行滤波d0=25;u0=round(N1/2);v0=round(N2/2);for i=1:N1for j=1:N2d=sqrt((i-u0)^2+(i-v0)^2);h=exp(-(d/d0)^n);y(i,j)=h*g(i,j);endendy=ifftshift(y);E1=ifft2(y);E2=uint8(real(E1));figure(9);%显示图像subplot(1,2,2);imshow(E2);title('低通滤波');图8 低通滤波。