forum.jpg

实验目录

第一节:图像滤波

内容:

1. 熟悉图像滤波的原理;

2. 通过滤波算法验证图;

1.1图像滤波

所谓的图像滤波就是将图像数据进行平滑处理,它和信号滤波不是一回事,本质是将颜色进行平滑,平滑后的图像有可能会改变源图像的清晰度。

forum.jpg

视图说明

1.1.1平滑方式

选取一小块区域作为平滑处理的窗口,我们用该窗口内部的数据对中心像素点的颜色数据进行替代。

1.1.1.1均值滤波

1. 算法级算法

P11(滤波后图像像素点数据)= (p00 + p01 +p02+p10+p11+p12+p20+p21+p22)/9

forum.jpg

算法级设计

Note:在处理图像的时候,窗口每次向右移动一列,当移动到最右边的时候,想想移动一行。

1. RTL级算法

我们计算平均数的数,RTL算法一般采用加权平均来实现,加权平均能够更好的反应平均值。

例如:考察一学年对数学知识的掌握程序,通过考试进行考察,进行三次考试,用平均程序考量,第一考试(主要考察过去对知识的掌握程度)88,第二次考试(考察当前中期对知识的掌握程序)60,第三次考试(考察一学年对知识的掌握程序)75

forum.jpg

解析案例

forum.jpg

代码设计实现

1.1.1.1中值滤波

P11(滤波后图像像素点数据)= MIDPIX9

forum.jpg

滤波设计案例解析

1.2滤波验证

1.2.1HDL语言设计(均值滤波)

要求:默认图像分辨率600*400

forum.jpg

600X400图像

部分Verilog代码设计实现图像:

If(cnt== 15)cnt<= 0;else cnt <=cnt+1;//默认16个clk计算一个结果

Always @(posedge clk )

If(cnt == 15)

If(col ==600-3 ) begin

If(row==400-3)

Row<=0;

Else

Row<=row<=1;

col<=0;end

else col<=col+1;

always @(posedge clk )

case(cnt )

0:addr<= row*600 +col+0;//P00

1:addr<= row*600 +col +1;//P01

2:addr<= row*600 +col +2;//P02

3:addr<= row*600 +col +0+600;//P10

4:addr<= row*600 +col +1+600;//P11

5:addr<= row*600 +col +2+600;//P12

6:addr<= row*600 +col +0+1200;//P20

7:addr<= row*600 +col +1+1200;//P21

8:addr<= row*600 +col +2+1200;//P22

endcase


always @(posedge clk ) begin

if(cnt==1)p00<=mem[addr];

if(cnt==2)p01<=mem[addr];

if(cnt==3)p02<=mem[addr];

if(cnt==9p22<=mem[addr];end


1.2.2MATA操作

图像读

Im = imread(‘ xxx.jpg’);

Im =rgb2gray(im);

Im=imnoise(im,’salt &pepper’,0.03);

Imshow(im);

fid=fopen(’ img.dat‘,‘wt’)

for i=1:1:400

for j=1:1:600

fprintf(fid,’ %x\n’,im(i,j));

end

end

fclose(fid);

文件导入

Poim = importdata(‘posim.dat’);

Poim=uint8(Poim);

Imshow(Poim);

1.2.3验证结果

forum.jpg

验证结果1-1

forum.jpg

验证结果1-11

1.2.4HDL语言设计(中值滤波)

要求:默认图像分辨率600*400

forum.jpg

解析案例数据

1.2.4.1filter

该模块主要是对9个数据排序,取中间值,默认采用冒泡排序,原理如下:

冒泡排序算法的原理如下:[1]

1. 1.

比较相邻的元素。如果第一个比第二个大,就交换他们两个。[1];

2. 2.

对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。[1];

3. 3.

针对所有的元素重复以上的步骤,除了最后一个。[1];

4. 4.

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。;

1.2.4.2数据交换比较程序实现

forum.jpg

架构图

1.2.4.3冒泡排序

forum.jpg

图1.2.4.1冒泡排序法程序实现

1.2.4.4中值滤波验证结果

forum.jpg

经过滤波处理之后图片