教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

数字图像处理实验报告(2)

来源:网络收集 时间:2026-03-02
导读: c d 图2.2(其中Div=100 无滤波器作用,即a=0) 图2.3(其中Div=360 (a)原图 (b)反向投影结果 (c)图像正弦图 (d)滤波后投影图像正弦图 a b c d shepp-logan滤波器,即a=1) (a)原图 (b)反向投影结果 (

c d

图2.2(其中Div=100 无滤波器作用,即a=0)

图2.3(其中Div=360 (a)原图 (b)反向投影结果 (c)图像正弦图 (d)滤波后投影图像正弦图

a b

c d

shepp-logan滤波器,即a=1)

(a)原图 (b)反向投影结果 (c)图像正弦图 (d)滤波后投影图像正弦图

a

b

6

c d

图2.3(其中Div=360 hamming滤波器,即a=2)

图2.4(其中Div=360 (a)原图 (b)反向投影结果 (c)图像正弦图 (d)滤波后投影图像正弦图

a b

c d

hann滤波器,即a=3)

(a)原图 (b)反向投影结果 (c)图像正弦图 (d)滤波后投影图像正弦图

a

b

7

c d

图2.4(其中Div=360 无滤波器,即a=0)

(a)原图 (b)反向投影结果

(c)图像正弦图 (d)滤波后投影图像正弦图

2.2实验讨论

2.2.1 投影参数的修改:

对比分析一下实验指导中第5个步骤修改参数后的结果,为什么会出现这样的结果?

对比图2.1和2.2可知,对于取不同的Div值,其值越大,得到的反投影图像更清晰。根据代码,Div的值决定了对角度分割的程度,Div值越大,扫描的时候角度增量越小,则扫描的精确,得到的图像更清晰。

2.2.2 滤波器的选择:

1)对比分析滤波前后的结果图像,并说明原因;

对比图2.2和2.3结果可知,当加上滤波器之后,得到的图像更清晰,没有可见的模糊。原因是未经过滤波的图像中存在很多干扰噪声成分,而经过滤波后再进行反投影操作能有效除去这些噪声和模糊,于是得到了清晰的图像。

2)对比选择不同的滤波器的滤波效果,说明使用哪个滤波器效果比较好,不用说明原因。

由以上图像显示结果,hann窗滤波器和hamming窗滤波效果没有明显区别,不同的图像适合不同的滤波器,而本次试验中,从视觉上来说,shepp-logan滤波器得到的图像更清晰。

8

附录(实验代码)

.pro文件代码如下:

QT += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = shiyanba TEMPLATE = app

SOURCES += main.cpp\\ mainwindow.cpp

INCLUDEPATH+=C:\\Qt\\opencv2.2\\include\\opencv\\ C:\\Qt\\opencv2.2\\include\\opencv2\\ C:\\Qt\\opencv2.2\\include

LIBS+=C:\\Qt\\opencv2.2\\lib\\libcv.dll.a\\

C:\\Qt\\opencv2.2\\lib\\libopencv_calib3d220.dll.a\\ C:\\Qt\\opencv2.2\\lib\\libopencv_contrib220.dll.a\\ C:\\Qt\\opencv2.2\\lib\\libopencv_core220.dll.a\\

C:\\Qt\\opencv2.2\\lib\\libopencv_features2d220.dll.a\\ C:\\Qt\\opencv2.2\\lib\\libopencv_flann220.dll.a\\ C:\\Qt\\opencv2.2\\lib\\libopencv_gpu220.dll.a\\ C:\\Qt\\opencv2.2\\lib\\libopencv_highgui220.dll.a\\ C:\\Qt\\opencv2.2\\lib\\libopencv_imgproc220.dll.a\\ C:\\Qt\\opencv2.2\\lib\\libopencv_legacy220.dll.a\\ C:\\Qt\\opencv2.2\\lib\\libopencv_ml220.dll.a\\

C:\\Qt\\opencv2.2\\lib\\libopencv_objdetect220.dll.a\\ C:\\Qt\\opencv2.2\\lib\\libopencv_video220.dll.a

Main.Cpp代码如下:

#include

#include #include #include using namespace cv; using namespace std;

//子函数---创建亚像素图像

Mat subpixels(Mat source_image) {

Mat target_image(source_image.rows*2, source_image.cols*2, CV_32F); Mat Matrix_In = (Mat_(2,2) << 1,1,1,1); int source_rows = source_image.rows,

source_cols = source_image.cols; Mat mTemp;

for ( int i = 0; i < source_rows; i++) { for ( int j = 0; j < source_cols; j++) {

9

float pixel_quarter = (float)(source_image.at(i, j)); mTemp = Matrix_In.mul(Matrix_In, pixel_quarter); Mat t=target_image(Rect_(j*2, i*2, 2, 2)); mTemp.copyTo(t); } }

cout<<\ return target_image; }

//子函数---矩阵转置并拉平

Mat flatten(Mat Arr_In) { Arr_In = Arr_In.t();

Mat Arr_Out = Arr_In.reshape(1,1); return Arr_Out; }

//子函数---对坐标进行采样

void ndgrid(int xc,int yc, int m,int n, Mat& X,Mat& Y) { Mat M = (Mat_(2*m,1)); for(int i=0;i<2*m;i++) {

M.at(i,0) = 0.75-xc+(float)i/2; }

Mat N = (Mat_(1,2*n)); for(int i=0;i<2*n;i++) {

N.at(0,i) = 0.75-yc+(float)i/2; }

X = repeat(M,1,2*m); Y = repeat(N,2*n,1); }

//子函数---矩阵元素累加

void accumarray(Mat subs, Mat val, Size sz, Mat& RT){ RT = Mat::zeros(sz.width, sz.height, CV_32F); for(int i=0; i

RT.at(subs.at(i)-1) += val.at(i); } }

//子函数---设计滤波器

Mat Design_filter(Mat& In,int a,int d){

int nextpow2 = ceil(log(2*In.rows)/log(2));

10

…… 此处隐藏:875字,全部文档内容请下载后查看。喜欢就下载吧 ……
数字图像处理实验报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/453166.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)