C语言图像处理报告.docx

上传人:b****4 文档编号:11696658 上传时间:2023-03-30 格式:DOCX 页数:15 大小:1.08MB
下载 相关 举报
C语言图像处理报告.docx_第1页
第1页 / 共15页
C语言图像处理报告.docx_第2页
第2页 / 共15页
C语言图像处理报告.docx_第3页
第3页 / 共15页
C语言图像处理报告.docx_第4页
第4页 / 共15页
C语言图像处理报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C语言图像处理报告.docx

《C语言图像处理报告.docx》由会员分享,可在线阅读,更多相关《C语言图像处理报告.docx(15页珍藏版)》请在冰豆网上搜索。

C语言图像处理报告.docx

C语言图像处理报告

实验(实训报告)

 

课程名称智能信息处理

实验(实训)名称

班级组别姓名

同组者

实验(实训)日期完成日期

 

本实验(实训)所用学时统计

预习实验(实训)报告总计

评阅意见:

成绩

 

一、实验目的

1、熟悉MATLAB的基本使用;

2、掌握图像的基本知识及基本处理技能;

3、掌握直方图均衡化的实现方法;

4、掌握图像空域滤波基本技术。

二、实验内容

1、图像类型的转换;

2、图像的显示;

3、图像的算术运算与几何运算;

4、图像直方图均衡化;

5、图像空域滤波。

三、实验步骤与结果

1、不同类型图像的转换

(1)用gray2ind函数将一幅灰度图像转换成索引图像,128个灰度级,并与原图进行对比显示

I=imread('fw.bmp');

[I1,map1]=gray2ind(I,128);

subplot(1,2,1);imshow(I1,map1);

subplot(1,2,2);imshow(I);

 

图一

(2)用ind2gray函数将索引一幅图像转换成灰度图像,并与原图进行对比显示

>>I=imread('fw.bmp');

[I1,map]=gray2ind(I,64);

I2=ind2gray(I1,map);

>>subplot(1,2,1);imshow(I1,map);

>>subplot(1,2,2);imshow(I2,map1);

图二

(3)用ind2rgb函数将一幅索引图像转换成真彩色图像,并与原图进行对比显示

>>loadtrees

I=ind2rgb(X,map);

>>subplot(1,2,1);imshow(X,map);

>>subplot(1,2,2);imshow(I);

图三

(4)用mat2gray函数按指定区间(可自行指定)将数据矩阵转换成一幅灰度图像,并与原图进行对比显示

>>I=imread('fw.jpg');

>>I1=filter2(fspecial('sobel'),I);

>>I2=mat2gray(I1);

>>subplot(1,2,1);imshow(I);

>>subplot(1,2,2);imshow(I2);

图四

(5)用grayslice函数通过阈值(自行设定)将一幅灰度图像转换成索引图像,并与原图进行对比显示

>>I=imread('fw.jpg');

>>I1=grayslice(I,100);

>>subplot(1,2,1);imshow(I);

>>subplot(1,2,2);imshow(I1);

 

图五

 

(6)用rgb2gray函数将一幅真彩色图像转换成灰度图像,并与原图进行对比显示

>>I=imread('fw1.jpg');

>>I1=rgb2gray(I);

>>subplot(1,2,1);imshow(I);

>>subplot(1,2,2);imshow(I1);

 

图六

(7)用rgb2gray函数将一幅真彩色图像转换成索引色图像,并与原图进行对比

>>I=imread('fw1.jpg');

>>[X,map]=rgb2ind(I,64);

>>subplot(1,2,1);imshow(I);

>>subplot(1,2,2);imshow(X,map);

2、图像的算术运算

(1)用imadd函数将两幅图像相加,并与原图进行对比显示

相加的图必须像素相等

I=imread('back.bmp');

J=imread('love.jpg');

K=imadd(I,J);

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

>>subplot(1,3,2);imshow(J);

>>subplot(1,3,3);imshow(K);

 

(2)用imadd函数将图像与常数相加,并与原图进行对比显示

>>I=imread('fw1.jpg');

>>J=imadd(I,100);

>>subplot(1,2,1);imshow(I);

>>subplot(1,2,2);imshow(J);

(3)用imsubtract函数将两幅图像相减,并与原图进行对比显示

>>I=imread('hy.jpg');

>>J=imread('back.jpg');

>>K=imsubtract(I,J);

>>subplot(1,3,1);imshow(I);

>>subplot(1,3,2);imshow(J);

>>subplot(1,3,3);imshow(K);

 

(4)用imsubtract函数将图像与常数相减,并与原图进行对比显示

>>I=imread('hy.jpg');

>>B=imopen(I,strel('disk',20));

>>I2=imsubtract(I,B);

>>subplot(1,2,1),imshow(I);

>>subplot(1,2,2),imshow(I2);

 

3、图像的几何运算

(1)用imresize函数改变一幅图像的大小,并与原图进行对比显示

>>X=imread('bb.jpg');

>>subplot(2,2,1);imshow(X);

>>X1=imresize(X,2,'nearest');

>>subplot(2,2,2),imshow(X1,[]);

>>X2=imresize(X,2,'bilinear');

>>subplot(2,2,3),imshow(X2,[]);

>>X3=imresize(X,2,'bicubic');

>>subplot(2,2,4),imshow(X3,[]);

 

(2)用imrotate函数将一幅图像旋转45度,并与原图进行对比显示

>>I=imread('bb.jpg');

>>J=imrotate(I,45,'bilinear');

>>subplot(1,2,1),imshow(I);

>>subplot(1,2,2),imshow(J);

(3)用imcrop函数裁剪一幅图像,并与原图进行对比显示

>>I=imread('bb.jpg');

>>I1=imcrop(I,[5,5,300,200]);

>>subplot(1,2,1),imshow(I);

>>subplot(1,2,2),imshow(I1);

4、图像直方图均衡化

选择一幅图像,用subplot、plot、imhist、cumtrapz等函数,对其进行直方图均衡化,并将原图像、其直方图,转换函数,以及均衡化后的直方图,以子图的形式,在一幅图中显示出来

>I=imread('bb.jpg');subplot(2,2,1);imshow(I);PS=rgb2gray(I);

[m,n]=size(I);GP=zeros(1,256);

fork=0:

255

GP(k+1)=length(find(I==k))/(m*n);

end

subplot(2,2,2);bar(0:

255,GP,'g');

>>N=zeros(1,256);

>>fori=1:

256

forj=1:

i

N(i)=GP(j)+N(i);

end

end

>>S2=round((N*256)+0.5);

>>fori=1:

256

GPeq(i)=sum(GP(find(S2==i)));

end

>>subplot(2,2,3);bar(0:

255,GPeq,'b')X=PS;

>>fori=0:

255

X(find(PS==i))=S2(i+1);

end

>>subplot(2,2,4);imshow(X);

 

5、图像空域滤波

(1)用邻域平均模板,利用函数fspecial,对一幅分别进行平滑处理(即低通滤波),再用subplot函数以子图形式,将处理前后的图像显示出来。

>>x=imread('bb.jpg');

h=fspecial('laplacian')

y=imfilter(x,h);

subplot(1,2,1)

imshow(x)

subplot(1,2,2)

imshow(y)

h=

0.16670.66670.1667

0.6667-3.33330.6667

0.16670.66670.1667

 

(2)用高斯低通(gaussian)模板,利用函数fspecial,对一幅分别进行平滑处理,再用subplot函数以子图形式,将处理前后的图像显示出来。

 

四、实验体会:

在学习MATLAB的过程中,我感到首先要先熟悉一些命令的格式,然后亲自去打出一

些代码才能起到熟练的作用,然后就要多找例子,细细看明白,并且要做到能举一反

三。

最后要对大段代码读懂大概意思,然后再去认真推敲,完成作业。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1