《数字信号与图像处理结课作业》由会员分享,可在线阅读,更多相关《数字信号与图像处理结课作业(14页珍藏版)》请在金锄头文库上搜索。
1、姓姓名:名:xxx学学号:号:xxx指指 导 老老 师:xxx日日期:期:xxx1aGUI界面界面2aGUI工作界面工作界面3a读取取图片片global im filename,pathname = . uigetfile(*.jpg;*.bmp;*.gif,选择图片);% 合成路径+文件名str = pathname filename;% 读取图片im = imread(str);% 使用第一个axesaxes(handles.axes1);% 显示图片imshow(im);4a图像像边缘检测 global im;str=get(hObject,string);axes(handles.ax
2、es2);switch str case 原图 imshow(im)%显示原图 case sobel bw1=edge(rgb2gray(im),sobel); imshow(bw1) %显示sobel方式的边缘检测图 case prewitt bw2=edge(rgb2gray(im),prewitt); %显示prewitt方式的边缘检测图 imshow(bw2) case canny %显示canny方式的边缘检测图 bw3=edge(rgb2gray(im),canny); imshow(bw3) case roberts bw4=edge(rgb2gray(im),roberts);
3、 imshow(bw4); %显示roberts方式的边缘检测图end 5asobel 检测prewitt 检测canny 检测roberts 检测6a彩色通道提取global im %使用全局变量imglobal I_RGB %声明I_RGB为全局变量% 拿到所选按钮的名称str = get(hObject,string);switch str case RGB_R I_RGB = im(:,:,1); %提取RGB图像的R通道 axes(handles.axes1); imshow(I_RGB); %显示R通道图像 axes(handles.axes2); imhist(I_RGB); %
4、显示R通道图像的灰度直方图case RGB_G; I_RGB = im(:,:,2); %提取RGB图像的G通道 axes(handles.axes1); imshow(I_RGB); %显示G通道图像 axes(handles.axes2);imhist(I_RGB); %显示G通道图像的灰度直方图 case RGB_B I_RGB = im(:,:,3); %提取RGB图像的B通道 axes(handles.axes1); imshow(I_RGB); %显示B通道图像 axes(handles.axes2); imhist(I_RGB); %显示B通道图像的灰度直方图7a三通道显示R通道
5、G通道B通道8a图像去背景case R-B; I_R = im(:,:,1); I_B = im(:,:,3); I_RGB = I_R - I_B; %R与B通道去背景处理 axes(handles.axes1); imshow(I_RGB); axes(handles.axes2); imhist(I_RGB); %显示R-B图像的灰度直方图 case R-G I_R = im(:,:,1); I_G = im(:,:,2); I_RGB = I_R - I_G; %R与G通道去背景处理axes(handles.axes1); imshow(I_RGB); axes(handles.axe
6、s2); imhist(I_RGB); %显示R-G图像的灰度直方图 case G-B I_G = im(:,:,2); I_B = im(:,:,3); I_RGB = I_G - I_B; %G与B通道去背景处理 axes(handles.axes1); imshow(I_RGB); axes(handles.axes2); imhist(I_RGB); %显示G-B图像的灰度直方图end;9a去背景后的去背景后的图图片片R-GR-BG-B10a去背景去背景global imglobal I_RGB %使用全局变量I_RGBglobal I_RGB_bw;I_R = im(:,:,1);I
7、_B = im(:,:,3);I_RGB = I_R - I_B;I_RGB_bw = im2bw(I_RGB,20/255);axes(handles.axes3);imshow(I_RGB_bw);U_R = im2double(I_RGB_bw) .* im2double(im(:,:,1);U_G = im2double(I_RGB_bw) .* im2double(im(:,:,2);U_B = im2double(I_RGB_bw) .* im2double(im(:,:,3); U = ;U(:,:,1) = U_R;U(:,:,2) = U_G;U(:,:,3) = U_B;a
8、xes(handles.axes3);imshow(U);11a空隙填充及面积计算global imglobal I_RGB %使用全局变量I_RGBglobal I_RGB_bwglobal Uglobal mjI_RGB_bw_img = imfill(I_RGB_bw,holes);axes(handles.axes3);imshow(I_RGB_bw_img); U_R = im2double(I_RGB_bw_img) .* im2double(im(:,:,1);U_G = im2double(I_RGB_bw_img) .* im2double(im(:,:,2);U_B = i
9、m2double(I_RGB_bw_img) .* im2double(im(:,:,3); U = ;U(:,:,1) = U_R;U(:,:,2) = U_G;U(:,:,3) = U_B;axes(handles.axes3);imshow(U);s_mj = size(I_RGB_bw_img);mj = 0;for i=1:s_mj(1)*s_mj(2) if I_RGB_bw_img(i)=1 mj = mj+1; endend12a边缘边缘提取、周提取、周长长及似及似圆圆性的性的计计算算global Uglobal mjU_gray = rgb2gray(U);BWM1 = bwmorph(U_gray,remove);%二维图像边缘提取axes(handles.axes3);imshow(BWM1);s_zc = size(BWM1);zc = 0;for i=1:s_zc (1)*s_zc (2) if BWM1(i)=1 zc = zc+1; endend %计算周长set(handles.edit1,string,zc);set(handles.edit2,string,mj);syx = zc2/4/pi/mj;set(handles.edit3,string,syx); %计算似圆性13a请老老师批批评指正指正谢谢观赏xxxxxx14a