当前位置:文档之家› 基于LinuxQT图形图像课程设计

基于LinuxQT图形图像课程设计

基于LinuxQT图形图像课程设计
基于LinuxQT图形图像课程设计

郑州科技学院QT课程设计

题目制作画图工具学生姓名

专业班级

学号

所在系

指导教师

完成时间年月日

目录

1概述 (1)

1.1项目名称 (1)

1.2 画图工具基本框架 (1)

1.3 画图工具功能介绍 (2)

1.3.1菜单 (2)

1.3.2线型选择 (3)

1.3.3画笔宽度 (3)

1.3.4画笔颜色 (3)

1.3.5清空画板 (3)

1.3.6绘制图形 (3)

1.3.7橡皮擦 (3)

1.3.8坐标定位 (3)

1.4 制作画图工具使用的编程语言 (4)

1.5 编译环境 (4)

1.6 使用QT编程语言制作画图工具的优势 (4)

1.7 项目制作过程中应用到的QT知识 (4)

1.7.1信号与槽 (4)

1.7.2对话框 (4)

1.7.3创建主窗口 (4)

1.7.4自定义窗口部件 (4)

1.7.5布局管理 (5)

1.7.6 QT中的事件机制 (5)

1.7.7二维图形的绘制 (5)

1.8 项目中建立的类 (5)

1.9 类之间的相互关系 (5)

2 总体设计 (6)

2.1 主窗口 (6)

2.1.1创建主窗口 (6)

2.1.2添加菜单 (6)

2.1.3添加子菜单 (6)

2.1.4创建状态栏 (7)

2.2悬浮窗 (7)

2.2.1线型选项 (7)

2.2.2画笔宽度调节 (8)

2.1.3画笔颜色选择 (8)

2.2.4清空画板 (9)

2.2.5绘制图形 (9)

2.2.6橡皮擦 (9)

2.3 画板 (10)

2.3.1画布的创建 (10)

2.3.2画布的颜色初始化 (10)

2.3.3画板大小 (10)

3详细设计 (10)

3.1子菜单功能的实现 (10)

3.1.1 New功能的实现 (10)

3.1.2 Open 功能的实现 (11)

3.1.3 Save 功能的实现 (11)

3.1.4 SaveAs 功能的实现 (12)

3.2 悬浮窗内各个功能的实现 (13)

3.2.1 Style功能的实现 (13)

3.2.2 Width 功能的实现 (14)

3.2.3 Color 功能的实现 (14)

3.2.4 Clear 功能的实现 (16)

3.2.5 绘图功能的实现 (16)

3.2.6 eraser 功能的实现 (17)

3.3 鼠标形状设置 (17)

3.4 坐标位置显示功能的实现 (17)

结束语 (18)

致谢 (19)

参考文献 (20)

1 概述

1.1 项目名称

制作画图工具

1.2 画图工具基本框架

运行结果如下图:

图1.1

图1.2

图1.3

图1.4 1.3 画图工具功能介绍

1.3.1 菜单

图1.2

1.File

A.New(新建)

B.Open(打开一个图片)

C.Save(保存)

D.SaveAs(另存为)

E.Exit(退出)

图1.3

2.Help

A.About(查看有关本工具的信息)

1.3.2 线型选择

A.Solidline

B.Dotline

C.Dashline

1.3.3 画笔宽度

Width:可手动调节画笔宽度

1.3.4 画笔颜色

Color:可手动选择画笔颜色

1.3.5 清空画板

Clear:手动清空整个画板

1.3.6 绘制图形

1.矩形rectangle

2.圆角矩形roundrectangle

3.椭圆ellipse(当按着Shift键绘制时为圆形)

4.弦chord

5.线line

1.3.7 橡皮擦

Eraser:宽度可选

1.3.8 坐标定位

状态栏:可以显示鼠标所在位置坐标(图1.4)状态栏

1.4 制作画图工具使用的编程语言

基于Linux的嵌入式QT

1.5 编译环境

Qt Creator

1.6使用QT编程语言制作画图工具的优势

QT具有可以让编程人员灵活运用而且独特于其他编程语言的信号—槽机制,尤其是在本项目制作过程当中遇到的一些棘手问题,当我们使用信号—槽机制来解决的时候,很容易发现,那些原本复杂的问题将变得如此简单。

1.7 项目制作过程中应用到的QT知识

1.7.1 信号与槽

1.信号与槽的定义

2.信号与槽的关联

3.需要注意的问题

1.7.2 对话框

Qt消息框

1.7.3 创建主窗口

1.QMain Window 类

2.创建主窗口的方法和流程

3.菜单和子菜单的创建

1.7.4 自定义窗口部件

1.QWidget类

2.从QWidget中派生

1.7.5 布局管理

1.垂直布局

2.水平布局

3.网格布局

1.7.6 QT中的事件机制

1.鼠标事件

2.键盘事件

1.7.7 二维图形的绘制

1.QPainter类的应用

2.图像的装载

3.图像的保存

4.坐标变换

5.QImage类应用

6.QT打印图形

1.8 项目中建立的类

1.Controlbox类

2.Drawwidget类

3.MainWindow类

1.9 类之间的相互关系

Controlbox类:创建悬浮窗内的各个控件(线宽、画笔颜色、清空等等)Drawwidget类:创建画板

MainWindow类:主窗口

○1主窗口调用Controlbox类和Drawwidget类设定整个画图工具的外部框架。○2运用信号-槽机制关联Controlbox类和Drawwidget类中的函数以及MainWindow类和Controlbox类中的函数。

○3事件机制的实现

2 总体设计

2.1 主窗口

2.1.1创建主窗口

一般情况下,建立一个QT工程必须要有一个主窗口,而且仅有一个主窗口,所有需要实现的功能,在交互界面中必须在此窗口的基础上来实现,这样才使得整个工程的建立得以实现其自身价值。

一个最简单的主窗口,没有菜单栏,没有工具栏,没有状态栏。在此我们首先创建一个最简单的主窗口。

2.1.2 添加菜单

仅仅创建一个最简单的主窗口除了它所存在的基本框架以外没有任何其他的意义,所以要想实现画图工具所有的功能,接下来就要为主窗口添加菜单项,这是为下一步的循序渐进做铺垫。

添加两个菜单项:1.File 2.Help

File是文件菜单,任何一个关于事物的操作无非都是面向文件,所以文件菜单是一个必不可少的菜单项。

fileMenu=menuBar()->addMenu(tr("&File"));

Help菜单项是关于软件版本的相关信息。

helpMenu=menuBar()->addMenu(tr("&help"));

2.1.3 添加子菜单

单单添加菜单项是无法完成任何操作的,在QT里面,每一个事件的完成要么是依靠信号-槽机制进行关联,要么是通过事件机制来连接。在这里,我们首先添加子菜单,以方便之后借着信号-槽机制实现相应的功能。

添加五个子菜单:

1.New

newAct=new QAction(QIcon(":/new/prefix1/image/new.PNG"),tr("&New"),thi s);

2.Open

openAct=new QAction(QIcon(":/images/open.png"),tr("&Open..."),this);

3.Save

saveAct=new QAction(QIcon(":/new/prefix1/image/save.PNG"),tr("&Save"), this);

4.SaveAs

saveAsAct=new QAction(tr("Save&As..."),this);

5.Exit

exitAct=new QAction(tr("E&xit"),this);

2.1.4 创建状态栏

状态栏是为了显示用户当前操作时的信息,使机器更加人性化。

void MainWindow::setMousePosDisplay(int x, int y)

{

QString str = "("+ QString::number(x) + ","+QString::number(y) + ")";

statusBar()->showMessage(str);

}

2.2 悬浮窗

悬浮窗只是一个外部的架构,只有通过信号-槽机制将控件与槽函数相关联才能够达到真正的目的。

2.2.1 线型选项

Style:是一个标签,用于表明右边的ComboBox是一个关于线型选择的组合框。

ComboBox里添加有子项,各种线型,比如Solidline 、Dotline、Dashline 等等。只需要手动选择其中的一个类型即可实现一种不同线型绘制图形。

实现代码如下:

styleLabel=new QLabel("style");

gridLayout->addWidget(styleLabel,0,0);

styleComboBox=new QComboBox;

styleComboBox->addItem(tr("SolidLine"),static_cast(Qt::SolidLine ));

styleComboBox->addItem("DashLine",static_cast(Qt::DashLine)); styleComboBox->addItem("DotLine",static_cast(Qt::DotLine)); styleComboBox->addItem("DashDotLine",static_cast(Qt::DashDotLine ));

styleComboBox->addItem("DashDotDotLine",static_cast(Qt::DashDotD otLine));

gridLayout->addWidget(styleComboBox,0,1,1,2);

2.2.2 画笔宽度调节

Width是一个标签,用于表明它的右边是一个关于线宽调节的QSpinBox。可以通过点击QSpinBox上下箭来实现画笔宽度的调节。

代码实现如下:

widthLabel = new QLabel("Width");

widthSpinBox = new QSpinBox;

widthSpinBox->setValue(1);

gridLayout->addWidget(widthLabel,1,0);

gridLayout->addWidget(widthSpinBox,1,1,1,2);

2.2.3 画笔颜色选择

图2.1

通过单击Color右侧的快速存取按钮弹出图2.1对话框,选择其中的颜色之后,单击OK即可选择有效画笔颜色。

实现代码:

colorBtn = new QToolButton;

QPixmap pixmap(20,20);

pixmap.fill(Qt::black);

colorBtn->setIcon(QIcon(pixmap));

gridLayout->addWidget(colorBtn,2,1);

2.2.4 清空画板

单击Clear按钮即可清除画板上的所有内容。

实现代码如下:

clearBtn = new QToolButton();

clearBtn->setText("clear");

gridLayout->addWidget(clearBtn,3,0);

2.2.5 绘制图形

接下来是五个按钮,单击其中一个即可选择你想要绘制的基本图形,比如矩形、椭圆、直线等等。

实现代码如下:

rectangle=new

QPushButton(QIcon(":/new/prefix1/image/qpainter-rectangle.png"),tr("r ectangle"),0);

roundrect=new

QPushButton(QIcon(":/new/prefix1/image/qpainter-roundrect.png"),tr("r oundrect"),0);

ellipse=new

QPushButton(QIcon(":/new/prefix1/image/qpainter-ellipse.png"),tr("ell ipse"),0);

chord=new

QPushButton(QIcon(":/new/prefix1/image/qpainter-chord.png"),tr("chord "),0);

line=new QPushButton(QIcon(":/new/prefix1/image/Line(2).png"),tr("line "),0);

2.2.6 橡皮擦

想要去除某些冗余部分时可以单击选择橡皮擦对冗余部分进行擦除。

实现代码如下:

erasor=new QPushButton(QIcon(":/new/prefix1/image/cursor_erasor.pn g"),tr("eraser"),0);

gridLayout->addWidget(erasor,10,0);

2.3 画板

2.3.1 画布的创建

创建一张新的画布,等待用户绘制图片。

实现代码如下:

pix=new QPixmap(this->size());

2.3.2 画布的颜色初始化

初始化画布的颜色,使它拥有一个初始背景颜色。

实现代码如下:

pix->fill(Qt::white);

2.3.3 画板大小

初始化画布的大小,使它能适合画板控件。

实现代码如下:

pix=new QPixmap(this->size());

setMinimumSize(600,400);

3 详细设计

3.1子菜单功能的实现

3.1.1 New功能的实现

步骤如下:

○1新建一个QAction,,并将此子菜单项命名为New

newAct=new QAction(QIcon(":/new/prefix1/image/new.PNG"),tr("&New"),thi s);

○2添加快捷键:newAct->setShortcuts(QKeySequence::New); Ctrl+N

○3当鼠标指向此子菜单项的时候,在状态栏显示信息为:Create a new file

newAct->setStatusTip(tr("Createanewfile"));

○4当此子菜单项被触发(单击子菜单项)的时候,激活newFile 槽函数。

connect(newAct,SIGNAL(triggered()),this,SLOT(newFile()));

在此应用到信号-槽机制,这是QT里面极为重要的特色内容,当一个QAction 被触发的时候,系统会自动调用与此信号相关联的槽函数,newFile()是自定义的一个实现新建图片文件的槽函数。

○5将此QAction添加到File 菜单中:

fileMenu->addAction(newAct);

3.1.2 Open 功能的实现

步骤如下:

○1新建一个QAction,,并将此子菜单项命名为Open

openAct=new QAction(QIcon(":/images/open.png"),tr("&Open..."),this);○2添加快捷键:openAct->setShortcuts(QKeySequence::Open); Ctrl+O

○3当鼠标指向此子菜单项的时候,在状态栏显示信息为:Open an existing file openAct->setStatusTip(tr("Openanexistingfile"));

○4当此子菜单项被触发(单击子菜单项)的时候,激活Open() 槽函数。

connect(openAct,SIGNAL(triggered()),this,SLOT(open()));

在此应用到信号-槽机制,这是QT里面极为重要的特色内容,当一个QAction 被触发的时候,系统会自动调用与此信号相关联的槽函数,open()是自定义的一个实现打开一个图片文件的槽函数。

○5将此QAction添加到File 菜单中:

fileMenu->addAction(openAct);

3.1.3 Save 功能的实现

步骤如下:

○1新建一个QAction,,并将此子菜单项命名为Save

saveAct=new QAction(QIcon(":/new/prefix1/image/save.PNG"),tr("&Save"), this);

○2添加快捷键:saveAct->setShortcuts(QKeySequence::Save);Ctrl+s

○3当鼠标指向此子菜单项的时候,在状态栏显示信息为:

Save the document to disk

saveAct->setStatusTip(tr("Save the document to disk"));

○4当此子菜单项被触发(单击子菜单项)的时候,激活Save() 槽函数。

connect(saveAct, SIGNAL(triggered()), this, SLOT(save()));

在此应用到信号-槽机制,这是QT里面极为重要的特色内容,当一个QAction 被触发的时候,系统会自动调用与此信号相关联的槽函数,Save()是自定义的一个实现保存图片文件的槽函数。

○5将此QAction添加到File 菜单中:

fileMenu->addAction(saveAct);

3.1.4 SaveAs 功能的实现

步骤如下:

○1新建一个QAction,,并将此子菜单项命名为SaveAs

saveAsAct=new QAction(tr("Save&As..."),this);

○2添加快捷键:saveAsAct->setShortcuts(QKeySequence::SaveAs);Ctrl+s+a ○3当鼠标指向此子菜单项的时候,在状态栏显示信息为:

Save the document under a new name

saveAsAct->setStatusTip(tr("Save the document under a new name")); ○4当此子菜单项被触发(单击子菜单项)的时候,激活saveAs() 槽函数。

connect(saveAsAct, SIGNAL(triggered()), this, SLOT(saveAs()));

在此应用到信号-槽机制,这是QT里面极为重要的特色内容,当一个QAction 被触发的时候,系统会自动调用与此信号相关联的槽函数,saveAs()是自定义的一个实现将图片文件另存为一个新文件的槽函数。

○5将此QAction添加到File 菜单中:

fileMenu->addAction(saveAsAct);

3.1.5 Exit 功能的实现

步骤如下:

○1新建一个QAction,,并将此子菜单项命名为Exit

exitAct=new QAction(tr("E&xit"),this);

○2添加快捷键:exitAct->setShortcuts(QKeySequence::Quit);

○3当鼠标指向此子菜单项的时候,在状态栏显示信息为:

Exit the application

exitAct->setStatusTip(tr("Exit the application"));

○4当此子菜单项被触发(单击子菜单项)的时候,激活close() 槽函数。

connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));

在此应用到信号-槽机制,这是QT里面极为重要的特色内容,当一个QAction 被触发的时候,系统会自动调用与此信号相关联的槽函数,close()是系统内部的一个实现关闭或者退出一个应用程序的槽函数。

○5将此QAction添加到File 菜单中:

fileMenu->addAction(exitAct);

3.2 悬浮窗内各个功能的实现

3.2.1 Style功能的实现

○1在组合框中添加线型:

styleComboBox->addItem(tr("SolidLine"),static_cast(Qt::SolidLine ));

styleComboBox->addItem("DashLine",static_cast(Qt::DashLine)); styleComboBox->addItem("DotLine",static_cast(Qt::DotLine));

styleComboBox->addItem("DashDotLine",static_cast(Qt::DashDotLine ));

styleComboBox->addItem("DashDotDotLine",static_cast(Qt::DashDotD otLine));

这些线型都是QT 内部自定义。

○2关联信号与槽

connect(controlBox->styleComboBox,SIGNAL(activated(int)),this,SLOT(Sh owStyle()));

将组合框内子项的触发与主窗口类中的ShowStyle()槽函数进行关联。单击某个线型的时候就会自动调用ShowStyle()槽函数。

ShowStyle()槽函数的实现内容是:

void MainWindow::ShowStyle()

{

drawArea->setStyle(controlBox->styleComboBox->itemData(

controlBox->styleComboBox->currentIndex(),Qt::UserRole).toInt());

}即:给画板的setStyle()函数传递一个线型参数,下面为setStyle()函数:void DrawWidget::setStyle(int s)

{

style = s;

}这样style就获得一个整型值。再通过执行下面的这条语句就完成了画笔线型的选择:pen.setStyle((Qt::PenStyle)style);

3.2.2 Width 功能的实现

○1添加宽度框widthSpinBox:

widthSpinBox = new QSpinBox;

widthSpinBox->setValue(1);

给了它一个默认宽度。

○2信号与槽关联

connect(controlBox->widthSpinBox,SIGNAL(valueChanged(int)),drawArea,S LOT(setWidth(int)));那么,当widthSpinBox的值被改变的时候,将调用画板的setWidth()方法,setWidth()方法内容如下:

void DrawWidget::setWidth(int w)

{

weight = w;

}

这时便将widthSpinBox中的索引值作为参数传递给变量weight,再通过pen.setWidth(weight);这条语句的执行就完成了画笔宽度的调节。

3.2.3 Color 功能的实现

○1添加颜色colorBtn

colorBtn=new QToolButton;

○2信号与槽关联

connect(controlBox->colorBtn,SIGNAL(clicked()),this,SLOT(ShowColor()) );

单击colorBtn将调用主窗口类的ShowColor(),ShowColor()槽函数内容如下:

void MainWindow::ShowColor()

{

QColor = QColorDialog::getColor(Qt::black,this);

if(color.isValid())

{

drawArea->setColor(color);

QPixmap p(20,20);

p.fill(color);

controlBox->colorBtn->setIcon(QIcon(p));

}

}

Color用于获得用户选择的某种颜色值,画板类中的setColor(color):void DrawWidget::setColor(QColor c)

{

color = c;

}

将颜色参数传递过来,再执行画板类中pen.setColor(color);语句,即完成画笔颜色选择。

3.2.4 Clear 功能的实现

○1添加clearBtn按钮

clearBtn->setText("clear");

○2信号与槽关联

connect(controlBox->clearBtn,SIGNAL(clicked()),drawArea,SLOT(clear()) );

在主窗口类中将其关联,单击clearBtn的时候,调用画板类中槽函数clear():

void DrawWidget::clear()

{

pix->fill(Qt::white);

this->update();

}即可清除画布上的所有内容。

3.2.5 绘图功能的实现

○1添加各个按钮

rectangle-line,逐个添加并且为它们布局。

○2信号与槽相关联

connect(controlBox->rectangle,SIGNAL(clicked()),drawArea,SLOT(drawrec tangle()));

connect(controlBox->roundrect,SIGNAL(clicked()),drawArea,SLOT(drawrou ndrect()));

connect(controlBox->ellipse,SIGNAL(clicked()),drawArea,SLOT(drawellip se()));

connect(controlBox->chord,SIGNAL(clicked()),drawArea,SLOT(drawchord() ));

connect(controlBox->line,SIGNAL(clicked()),drawArea,SLOT(drawline())) ;

由上面的代码可见,其中任意一个按钮被单击的时候将会调用与此按钮信号相关联的槽函数,它们的绘图方法都极为相似,我们拿drawrectangle()进行解

数字图像处理 课程设计报告

数字图像处理 课程设计报告 姓名: 学号: 班级: 设计题目:图像处理 教师:赵哲老师 提交日期: 12月29日

一、设计内容: 主题:《图像处理》 详细说明:对图像进行处理(简单滤镜,模糊,锐化,高斯模糊等),对图像进行处理(上下对称,左右对称,单双色显示,亮暗程度调整等),对图像进行特效处理(反色,实色混合,色彩平衡,浮雕效果,素描效果,雾化效果等), 二、涉及知识内容: 1、二值化 2、各种滤波 3、算法等 三、设计流程图 四、实例分析及截图效果: 运行效果截图: 第一步:读取原图,并显示 close all;clear;clc; % 清楚工作窗口clc 清空变量clear 关闭打开的窗口close all I=imread(''); % 插入图片赋给I imshow(I);% 输出图I I1=rgb2gray(I);%图片变灰度图 figure%新建窗口 subplot(321);% 3行2列第一幅图 imhist(I1);%输出图片

title('原图直方图');%图片名称 一,图像处理模糊 H=fspecial('motion',40); %% 滤波算子模糊程度40 motion运动 q=imfilter(I,H,'replicate');%imfilter实现线性空间滤波函数,I图经过H滤波处理,replicate反复复制q1=rgb2gray(q); imhist(q1); title('模糊图直方图'); 二,图像处理锐化 H=fspecial('unsharp');%锐化滤波算子,unsharp不清晰的 qq=imfilter(I,H,'replicate'); qq1=rgb2gray(qq); imhist(qq1); title('锐化图直方图'); 三,图像处理浮雕(来源网络) %浮雕图 l=imread(''); f0=rgb2gray(l);%变灰度图 f1=imnoise(f0,'speckle',; %高斯噪声加入密度为的高斯乘性噪声 imnoise噪声污染图像函数 speckle斑点 f1=im2double(f1);%把图像数据类型转换为双精度浮点类型 h3=1/9.*[1 1 1;1 1 1;1 1 1]; %采用h3对图像f2进行卷积滤波 f4=conv2(f1,h3,'same'); %进行sobel滤波 h2=fspecial('sobel'); g3=filter2(h2,f1,'same');%卷积和多项式相乘 same相同的 k=mat2gray(g3);% 实现图像矩阵的归一化操作 四,图像处理素描(来源网络) f=imread(''); [VG,A,PPG] = colorgrad(f); ppg = im2uint8(PPG); ppgf = 255 - ppg; [M,N] = size(ppgf);T=200; ppgf1 = zeros(M,N); for ii = 1:M for jj = 1:N if ppgf(ii,jj)

2013数字图像处理课程设计报告

数字图像处理 课程设计报告 课设题目:彩色图像增强软件学院:信息科学与工程学院专业:电子与信息工程 班级: 1002501 姓名:曾小路 学号: 100250131 指导教师:赵占峰 哈尔滨工业大学(威海) 2013 年12月27日

目录 目录 .......................................................................................................................... I 一. 课程设计任务 (1) 二. 课程设计原理及设计方案 (2) 2.1 彩色图像基础 (2) 2.2 彩色模型 (2) 三. 课程设计的步骤和结果 (6) 3.1 采集图像 (6) 3.2 图像增强 (7) 3.3 界面设计 (9) 四. 课程设计总结 (12) 五. 设计体会 (13) 六. 参考文献 (14)

哈尔滨工业大学(威海)课程设计报告 一. 课程设计任务 1.1设计内容及要求: (1)、独立设计方案,根据所学知识,对由于曝光过度、光圈过小或图像亮度不均匀等情况下的彩色图像进行增强,提高图像的清晰度(通俗地讲,就是图像看起来干净、对比度高、颜色鲜艳)。 (2)、参考photoshop 软件,设计软件界面,对处理前后的图像以及直方图等进行对比显示; (3)、将实验结果与处理前的图像进行比较、分析。总结设计过程所遇到的问题。 1.2参考方案 1、实现图像处理的基本操作 学习使用matlab 图像处理工具箱,利用imread()语句读入图像,例如image=imread(flower.jpg),利用彩色图像模型转换公式,将RGB 类型图像转换为HSI 类型图像,显示各分量图像(如imshow(image)),以及计算和显示各分量图像直方图。 2、彩色图像增强实现 对HSI彩色模型图像的I分量进行对比度拉伸或直方图均衡化等处理,提高亮度图像的对比度。对S分量图像进行适当调整,使图像色彩鲜艳或柔和。 H 分量保持不变。将处理后的图像转换成RGB 类型图像,并进行显示。分析处理图像过程和结果存在的问题。 3、参照“photoshop”软件,设计图像处理软件界面 可设计菜单式界面,在功能较少的情况下,也可以设计按键式界面,视 功能多少而定;参考matlab 软件中GUI 设计,学习软件界面的设计 - 1 -

电子科技大学-数字图像处理-课程设计报告

电子科技大学 数字图像处理课程设计 课题名称数字图像处理 院(系)通信与信息工程学院 专业通信工程 姓名 学号 起讫日期 指导教师

2015年12月15日 目录 摘要: (03) 课题一:图像的灰度级分辨率调整 (04) 课题二:噪声的叠加与频域低通滤波器应用 (06) 课题三:顶帽变换在图像阴影校正方面的应用 (13) 课题四:利用Hough变换检测图像中的直线 (15) 课题五:图像的阈值分割操作及区域属性 (20) 课题六:基于MATLAB?的GUI程序设计 (23)

结束语: (36) 参考文献: (37)

基于MATLAB?的数字图像处理课题设计 摘要 本文首先对数字图像处理的相关定义、概念、算法与常用变换进行了介绍;并通过七个课题实例,借助MATLAB?的图像处理工具箱(Computer Vision System Toolbox)对这些案例逐一实现,包括图像的灰度值调整、图像噪声的叠加、频域低通滤波器、阈值分割、Hough变换等,常用的图像变化与处理;然后通过MATLAB?的GUI程序设计,对部分功能进行模块化整合,设计出了数字图像处理的简易软件;最后给出了软件的帮助文件以及该简易程序的系统结构和m代码。 关键词:灰度值调整噪声图像变换 MATLAB? GUI设计

课题一:图像的灰度级分辨率调整 设计要求: 128,64,32,16,8,4,2,并在同一个figure窗将图像的灰度级分辨率调整至{} 口上将它们显示出来。 设计思路: 灰度级分辨率又称色阶,是指图像中可分辨的灰度级的数目,它与存储灰度级别所使用的数据类型有关。由于灰度级度量的是投射到传感器上的光辐射值的强度,所以灰度级分辨率又称为辐射计量分辨率。随着图像灰度级分辨率的的逐渐降低,图像中所包含的颜色数目将变得越来越少,从而在颜色维度造成图像信息量的退化。 MATLAB?提供了histeq函数用于图像灰度值的改变,调用格式如下: J = histeq(I,n) 其中J为变换后的图像,I为输入图像,n为变换的灰度值。依次改变n的值为 128、64、32、16、8、4、2 就可以得到灰度值分辨率为128、64、32、16、8、4、2 的输出图像。利用MATLAB?的subplot命令可以将不同灰度的图像放在同一个figure中方便对比。 课题实现: 该思路的MATLAB?源代码如下: in_photo=imread('lena.bmp'); %读入图片“lena.bmp”,位置在matlab当前工作区路径下D:\TempProject\Matlab\Works for i = [128,64,32,16,8,4,2] syms(['out_photo',num2str(i)]); %利用for循环定义7个变量,作为不同灰度值分辨率的输出变量 eval(['out_photo',num2str(i), '=histeq(in_photo,i)',';']); %histeq函数用于改变图像灰度值,用eval函数给变量循环赋值

数字图像处理课程设计题目和要求-2013

. . . .页脚. 数字图像处理课程设计容、要求 题目一:图像处理软件 1、设计容及要求: (1)、独立设计方案,实现对图像的十五种以上处理(比如:底片化效果、灰度增强、图像复原、浮雕效果、木刻效果等等)。 (2)、参考photoshop软件,设计软件界面,对处理前后的图像以及直方图等进行对比显示; (3)、将实验结果与其他软件实现的效果进行比较、分析。总结设计过程所遇到的问题。 2、参考方案(所有参考方案若无特殊说明,均以matlab为例说明): (1)实现图像处理的基本操作 学习使用matlab图像处理工具箱,利用imread()语句读入图像,例如 image=imread(flower.jpg),对图像进行显示(如imshow(image)),以及直方图计算和显示。 (2)图像处理算法的实现与显示 针对课程中学习的图像处理容,实现至少十五种图像处理功能,例如模糊、锐化、对比度增强、复原操作。改变图像处理的参数,查看处理结果的变化。自己设计要解决的问题,例如引入噪声,去噪;引入运动模糊、聚焦模糊等,对图像进行复原。 (3)参照“photoshop”软件,设计图像处理软件界面 可设计菜单式界面,在功能较少的情况下,也可以设计按键式界面,视功能多少而定;参考matlab软件中GUI设计,学习软件界面的设计。

. . . 题目二:数字水印 1、设计容及要求: 为保护数字图像作品的知识产权,采用数字水印技术嵌入水印图像于作品中,同时尽可能不影响作品的可用性,在作品发生争执时,通过提取水印信息确认作品。通常情况下,水印图像大小要远小于载体图像,嵌入水印后的图像可能遇到噪声、有损压缩、滤波等方面的攻击。因此,评价水印算法的原则就是水印的隐藏性和抗攻击性。根据这一要求,设计水印算法。 (1)、查阅文献、了解数字水印的基本概念。 (2)、深入理解一种简单的数字水印嵌入与提取方法。 (3)、能够显示水印嵌入前后的载体图像。 (4)、能够显示嵌入与提取的水印。 (5)、选择一种以上的攻击方法,测试水印算法的鲁棒性等性能。 (6)、设计软件界面 2、参考方案 (1)对水印图像进行编码置乱(可采用伪随机码,提高水印图像的隐蔽性); (2) 对图像进行子图像分解(如8*8),对子块分别进行DCT变换; (3) 对DCT系数按照zig-zag排序进行排列,选择一种频系数,对该种频系数相邻 的系数进行水印嵌入 (4) 低通滤波检验水印算法的抗攻击性。 (5) 设计数字水印的软件界面。 .页脚.

计算机图形与可视化课程设计

课程设计课程名称:计算机图形学与可视化学生姓名: 学号: 专业班级: 指导老师: 院系名称:

课程设计任务书 设 计 题 目 利用迭代函数系统生成分形图案成绩课 程设计主要内容迭代函数系统(Iteration Function System,简称IFS)是以仿射变换为框架,根据几何对象的整体与局部具有自相似的结构,将总体形状以一定的概率按不同的仿射变换迭代下去,直至得到满意的分型图形。迭代函数系统绘制分形图形有两种方法:确定性迭代算法和随机性迭代算法。本文将以此原理出发,分析分形图形的生成方法,探索一些利用IFS产生丰富的分形图形的简便方法及具体应用。 具体内容请看下面的正文。 指导教师评语建议:从学生的工作态度、工作量、设计(论文)的创造性、学术性、实用性及书面表达能力等方面给出评价。 签名: 20 年月日

目录 一.系统功能介绍 (4) 二.设计思路 (6) 三.模块图 (6) 四.小组成员及任务分配 (7) 五.主要算法介绍 (7) 六.源代码 (8) 七.程序使用说明 (8) 八.调试结果 (8) 九.总结 (14) 十.参考文献 (15)

正文: 一.系统功能介绍 迭代函数系统(Iteration Function System,简称IFS)最早是由Hutchision 在1981年提出的。美国佐治亚理工学院的M F Bamsley等人在SIGGRAMPH’88国际会议上对IFS所作的专题报告,使IFS成为分形图像压缩的基础,从而使IFS成为分形图形学最有生命力的领域之一。 迭代函数系统(IFS)是以仿射变换为框架,根据几何对象的整体与局部具有自相似的结构,将总体形状以一定的概率按不同的仿射变换迭代下去,直至得到满意的分形图形。 目前使用的迭代函数系统绘制分形图的算法主要有两种:确定性迭代算法和随机性迭代算法。它们都是通过IFS码进行迭代而产生图形的方法。 确定性迭代算法是通过仿射变换得到的。其基本原理就是找一个初始集,对集上的每一个点,根据给定的仿射变换公式进行数据变换,便可得到新的点集。这样通过多次迭代,便可绘制所需的图形。并且每个图形的局部和整体相似。只要其仿射变换系数相同,即IFS码相同,当迭代次数足够大时,最终生成的图形是相同的。 随机性迭代算法用到了概率,从而可以对图形的细节和颜色进行控制。随机性迭代算法的基本原理就是利用一个给定的IFS码{:j=1,2,…,N}(每一个仿射变换对应于一个概率),从任选的一个初始点(,)出发,依据其概率分布{,,,…,},从{:j=1,2,…,N}中选择相应的进行仿射变换,可得到新的点(,)。然后再由概率选择相应的进行变换,进而得到新的点(,)。这样反复迭代,便可得到一系列的点{(,),(,),(,),…}。这些点集显示在屏幕上,便得到一个完整的分形图。 分形,又称碎形,通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。分形思想的根源可以追溯到公元17世纪,而对分形使用严格的数学处理则始于一个世纪后卡尔·魏尔施特拉斯、格奥尔格·康托尔和费利克斯·豪斯多夫对连续而不可微函数的研究。但是分形一词直到1975年才由本华·曼德博创造出,来自拉丁文,有“零碎”、“破裂”之意。一个数学意义上分形的生成是基于一个不断迭代的方程式,即一种基于递归的反馈系统。分形有几种类型,可以分别依据表现出的精确自相似性、半自相似性和统计自相似性来定义。虽然分形是一个数学构造,它们同样可以在自然界中被找到,这使得它们被划入艺术作

数字图像处理课程设计报告

课程设计报告书课程名称:数字图像处理 题目:数字图像处理的傅里叶变换 学生姓名: 专业:计算机科学与技术 班别:计科本101班 学号: 指导老师: 日期: 2013 年 06 月 20 日

数字图像处理的傅里叶变换 1.课程设计目的和意义 (1)了解图像变换的意义和手段 (2)熟悉傅里叶变换的基本性质 (3)热练掌握FFT的方法反应用 (4)通过本实验掌握利用MATLAB编程实现数字图像的傅里叶变换 通过本次课程设计,掌握如何学习一门语言,如何进行资料查阅搜集,如何自己解决问题等方法,养成良好的学习习惯。扩展理论知识,培养综合设计能力。 2.课程设计内容 (1)熟悉并掌握傅立叶变换 (2)了解傅立叶变换在图像处理中的应用 (3)通过实验了解二维频谱的分布特点 (4)用MATLAB实现傅立叶变换仿真 3.课程设计背景与基本原理 傅里叶变换是可分离和正交变换中的一个特例,对图像的傅里叶变换将图像从图像空间变换到频率空间,从而可利用傅里叶频谱特性进行图像处理。从20世纪60年代傅里叶变换的快速算法提出来以后,傅里叶变换在信号处理和图像处理中都得到了广泛的使用。 3.1课程设计背景 数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。 3.2 傅里叶变换 (1)应用傅里叶变换进行数字图像处理 数字图像处理(digital image processing)是用计算机对图像信息进行处理的一门技术,使利用计算机对图像进行各种处理的技术和方法。 20世纪20年代,图像处理首次得到应用。20世纪60年代中期,随电子计算机的发展得到普遍应用。60年代末,图像处理技术不断完善,逐渐成为一个新兴的学科。利用数字图像处理主要是为了修改图形,改善图像质量,或是从图像中提起有效信息,还有利用数字图像处理可以对图像进行体积压缩,便于传输和保存。数字图像处理主要研究以下内容:傅立叶变换、小波变换等各种图像变换;对图像进行编码和压缩;采用各种方法对图像进行复原和增强;对图像进行分割、描述和识别等。随着技术的发展,数字图像处理主要应用于通讯技术、宇宙探索遥感技术和生物工程等领域。

图像处理课程设计报告

图像处理课程设计报告 导语:设计是把一种设想通过合理的规划周密的计划通过各种感觉形式传达出来的过程。以下是XX整理图像处理课程设计报告的资料,欢迎阅读参考。 图像处理课程设计报告1 摘要:图像处理技术从其功能上可以分为两大类:模拟图像处理技术、和数字图像处理技术。数字图像处理技术指的是将图像信号直接转换成为数字信号,并利用计算机进行处理的过程,其主要的特点在于处理的精度高、处理的内容丰富、可以进行复杂、难度较高的处理内容。当其不在于处理的速度比较缓慢。当前图像处理技术主要的是体现在数字处理技术上,本文说阐述的图像处理技术也是以数字图像处理技术为主要介绍对象。数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。近年来, 图像处理技术得到了快速发展, 呈现出较为明显的发展趋势, 了解和掌握这些发展趋势对于做好目前的图像处理工作具有前瞻性的指导意义。本文总结了现代图像处理技术的三点发展趋势。 对图像进行处理(或加工、分析)的主要目的有三个方面: (1)提高图像的视感质量,如进行图像的亮度、彩色变换,增强、抑制某些成分,对图像进行几何变换等,以改善图像的质量。(2)提取图像中所包含的某些特征或特殊信息,这些被提

取的特征或信息往往为计算机分析图像提供便利。提取特征或信息的过程是计算机或计算机视觉的预处理。提取的特征可以包括很多方面,如频域特征、灰度或颜色特征、边界特征、区域特征、纹理特征、形状特征、拓扑特征和关系结构等。 (3)图像数据的变换、编码和压缩,以便于图像的存储和传输。不管是 何种目的的图像处理,都需要由计算机和图像专用设备组成的图像处理系统对图像数据进行输入、加工和输出。 数字图像处理主要研究的内容有以下几个方面: 图像变换由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。因此,往往采用各种图像变换的方法,如傅里叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理。目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。 图像编码压缩图像编码压缩技术可减少描述图像的数据量,以便节省图像传输、处理时间和减少所占用的存储器容量。压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。

课程设计报告-车牌识别系统的设计

车牌识别系统的设计 一、摘要: 随这图形图像技术的发展,现在的车牌识别技术准确率越来越高,识别速度越来越快。无论何种形式的车牌识别系统,它们都是由触发、图像采集、图像识别模块、辅助光源和通信模块组成的。车牌识别系统涉及光学、电器、电子控制、数字图像处理、计算视觉、人工智能等多项技术。触发模块负责在车辆到达合适位置时,给出触发信号,控制抓拍。辅助光源提供辅助照明,保证系统在不同的光照条件下都能拍摄到高质量的图像。图像预处理程序对抓拍的图像进行处理,去除噪声,并进行参数调整。然后通过车牌定位、字符识别,最后将识别结果输出。 二、设计目的和意义: 设计目的: 1、让学生巩固理论课上所学的知识,理论联系实践。 2、锻炼学生的动手能力,激发学生的研究潜能,提高学生的协作精神。 设计意义: 车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。 三、设计原理: 牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。 四、详细设计步骤:

图像处理课程设计

《图像处理技术应用实践》课程设计题目图像增强算法综合应用 学生姓名韩帅_______ 学号 院系计算机与软件学院 专业计算机科学与技术 范春年____ 噪声,不同的去噪方法效果不同,因此应该采用不同的去噪方法以达到最好的去噪效果。? (2)随机噪声应在空间域去除,而空域去噪方法中,中值滤波法效果最好。? (3)周期噪声应在频域中消去。?

(4)去除噪声后的图像仍然可以改善处理。? (5)均方误差评估去噪处理后图像的去噪效果。 2.2算法设计? (1)读入初始图片及加噪图片。? clc;?clear;? f=imread();? ? for?j?=?1?:?N? ???????d?=?sqrt((i-m)^2+(j-n)^2);? ????? h?=?1/(1+0.414*(d/d0)^(2*nn));??%?计算低通滤波器传递函数??????????? ?result(i,j)?=?h?*?G(i,j);???????? end???

end (4)计算均方误差评估去噪效果。? [m?n]=size(p);?l=f-p;? he=sum(sum(l));? avg=he/(m*n); ?k=l-avg;? result1=(sum(sum(k.^2)))/(m*n);? for i=1:M for j=1:N d=sqrt((i-m)^2+(j-n)^2); h=1/(1+0.414*(d/d0)^(2*nn)); %h=1/(1+(d/d0)^(2*nn)); %备用 G(i,j)=h*G(i,j); end end p=uint8(real(ifft2(ifftshift(G)))); subplot(341);imshow(f),title('原图'); subplot(345);imshow(log(abs(f2)),[]),title('频谱'); subplot(349);imhist(f),title('原图'); subplot(342);imshow(g),title('噪声');

Qt 图形 课程设计

郑州科技学院QT课程设计 题目图形图像的绘制 学生姓名 专业班级 学号 所在系信息工程学院 指导教师 完成时间年月日

目录 1. 概述 (4) 1.1 背景说明 (4) 1.1.1简介 (4) 1.1.2 功能和优势 (4) 1.2 项目名称 (5) 1.3 项目功能 (5) 1.4 项目基本框架结构 (5) 2. 各模块功能的介绍 (6) 2.1 工具栏 (6) 2.1.1 file文件 (6) 2.1.2 help帮助 (7) 2.2 操纵台 (7) 2.2.1 style线型选择 (7) 2.2.2 width画笔宽度 (8) 2.2.3 color画笔颜色 (8) 2.2.4 clear清空画板 (9) 2.2.5 绘制图形 (9) 2.2.6 erasor 橡皮擦 (10) 2.2.7坐标定位 (11) 2.2.8画布 (11) 2.3 布局格式 (11) 3. 详细设计 (12) 3.1 子菜单功能的实现 (12) 3.1.1 New功能的实现 (12) 3.1.2 Open 功能的实现 (13) 3.1.3 Save 功能的实现 (13) 3.1.4 SaveAs 功能的实现 (14) 3.1.5 Exit 功能的实现 (15) 3.2悬浮窗内各个功能的实现 (15) 3.2.1 Style功能的实现 (15)

3.2.2 Width 功能的实现 (16) 3.2.3 Color 功能的实现 (17) 3.2.4 Clear 功能的实现 (18) 3.2.5 绘图功能的实现 (19) 3.2.6 erasor 功能的实现 (20) 3.3鼠标形状设置 (20) 3.4 坐标位置显示功能的实现 (21) 4. 项目中所用到的QT知识介绍 (21) 4.1 信号与槽 (21) 4.2 创建主窗口 (23) 4.3 自定义窗口部件 (23) 4.4 布局管理 (23) 4.5 QT中的事件机制 (24) 4.6 二维图形的绘制 (25) 4.7 项目中建立的类 (25) 4.8 类之间的相互关系 (25) 结束语 (26) 致谢 (26) 参考文献 (27)

数字图像处理课程设计(实验报告)

上海理工大学 计算机工程学院 实验报告 实验名称红细胞数目统计课程名称数字图像处理 姓名王磊学号0916020226 日期2012-11-27 地点图文信息中心成绩教师韩彦芳

一、设计内容: 主题:《红细胞数目检测》 详细说明:读入红细胞图片,通过中值滤波,开运算,闭运算,以及贴标签等方法获得细胞个数。 二、现实意义: 细胞数目检测在现实生活中的意义主要体现在医学上的作用,可通过细胞数目的检测来查看并估计病人或动物的血液中细胞数,如估测血液中红细胞、白细胞、血小板、淋巴细胞等细胞的数目,同时也可检测癌细胞的数目来查看医疗效果,根据这一系列的指标来对病人或动物进行治疗,是具有极其重要的现实作用的。 三、涉及知识内容: 1、中值滤波 2、开运算 3、闭运算 4、二值化 5、贴标签 四、实例分析及截图效果: (1)代码如下: 1、程序中定义图像变量说明 (1)Image--------------------------------------------------------------原图变量;

(2)Image_BW-------------------------------------------------------值化图象; (3)Image_BW_medfilt-------------------------中值滤波后的二值化图像; (4)Optimized_Image_BW---通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果; (5)Reverse_Image_BW--------------------------优化后二值化图象取反;(6)Filled_Image_BW----------------------已填充背景色的二进制图像;(7)Open_Image_BW--------------------------------------开运算后的图像; 2、实现代码: %-------图片前期处理------------------- %第一步:读取原图,并显示 A = imread('E:\红细胞3.png'); Image=rgb2gray(A); %RGB转化成灰度图 figure,imshow(Image); title('【原图】'); %第二步:进行二值化 Theshold = graythresh(Image); %取得图象的全局域值 Image_BW = im2bw(Image,Theshold); %二值化图象 figure,imshow(Image_BW); title('【初次二值化图像】'); %第三步二值化图像进行中值滤波 Image_BW_medfilt= medfilt2(Image_BW,[13 13]); figure,imshow(Image_BW_medfilt); title('【中值滤波后的二值化图像】'); %第四步:通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果 Optimized_Image_BW = Image_BW_medfilt|Image_BW; figure,imshow(Optimized_Image_BW); title('【进行“或”运算优化图像效果】'); %第五步:优化后二值化图象取反,保证:‘1’-〉‘白色’,‘0’-〉‘黑色’ %方便下面的操作 Reverse_Image_BW = ~Optimized_Image_BW; figure,imshow(Reverse_Image_BW); title('【优化后二值化图象取反】');

图形图像处理实验报告

第四次实验报告 实验课程:图像图像处理实验人:尹丽(200921020047) 实验时间:2012年4月19日实验地点:5-602 指导老师:夏倩老师成绩: 一、实验内容: ⑴图像的锐化:使用Sobel,Laplacian 算子分别对图像进行运算,观察并体会运算结果。 ⑵综合练习:对需要进行处理的图像分析,正确运用所学的知识,采用正确的步骤,对图像进行各类处理,以得到令人满意的图像效果。 二、实验目的: 学会用Matlab中的下列函数对输入图像按实验内容进行运算;感受各种不同的图像处理方法对最终图像效果的影响。(imfilter;fspecial;) 三、实验步骤:

1、仔细阅读Matlab 帮助文件中有关以上函数的使用说明,能充分理解其使用方法并能运用它们完成实验内容。 2、将Fig3.41(c).jpg 图像文件读入Matlab ,使用filter2函数分别采用不同的算子对其作锐化运算,显示运算前后的图像。 3、算子的输入可采用直接输入法。其中Sobel ,Laplacian ,也可用fspecial 函数产生。 4、各类算子如下: ???? ??????---121000121 ??????????-111181111 5、将Fig3.46(a).jpg 图像文件读入Matlab ,按照以下步骤对其进行处理: (1)用带对角线的Laplacian 对其处理,以增强边缘。 (2)用imadd 函数叠加原始图像。可以看出噪声增强了,应想法降低。 (3)获取Sobel 模板并用filter2对其进行5×5邻域平均,以减少噪声。 5(1)实验代码如图: 对角线Laplacian Sobel 垂直梯度

数字图像处理课程设计报告

课程设计报告书 课程名称:数字图像处理 题目:数字图像处理的傅里叶变换 学生姓名: 专业:计算机科学与技术 班别:计科本101班 学号: 指导老师: 日期:2013 年06 月20 日 数字图像处理的傅里叶变换 1.课程设计目的和意义 (1)了解图像变换的意义和手段 (2)熟悉傅里叶变换的基本性质 (3)热练掌握FFT的方法反应用 (4)通过本实验掌握利用MATLAB编程实现数字图像的傅里叶变换 通过本次课程设计,掌握如何学习一门语言,如何进行资料查阅搜集,如何自己解决问题等方法,养成良好的学习习惯。扩展理论知识,培养综合设计能力。 2.课程设计内容 (1)熟悉并掌握傅立叶变换 (2)了解傅立叶变换在图像处理中的应用 (3)通过实验了解二维频谱的分布特点 (4)用MATLAB实现傅立叶变换仿真

3.课程设计背景与基本原理 傅里叶变换是可分离和正交变换中的一个特例,对图像的傅里叶变换将图像从图像空间变换到频率空间,从而可利用傅里叶频谱特性进行图像处理。从20世纪60年代傅里叶变换的快速算法提出来以后,傅里叶变换在信号处理和图像处理中都得到了广泛的使用。 3.1课程设计背景 数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。 3.2 傅里叶变换 (1)应用傅里叶变换进行数字图像处理 数字图像处理(digital image processing)是用计算机对图像信息进行处理的一门技术,使利用计算机对图像进行各种处理的技术和方法。 ? ??20世纪20年代,图像处理首次得到应用。20世纪60年代中期,随电子计算机的发展得到普遍应用。60年代末,图像处理技术不断完善,逐渐成为一个新兴的学科。利用数字图像处理主要是为了修改图形,改善图像质量,或是从图像中提起有效信息,还有利用数字图像处理可以对图像进行体积压缩,便于传输和保存。数字图像处理主要研究以下内容:傅立叶变换、小波变换等各种图像变换;对图像进行编码和压缩;采用各种方法对图像进行复原和增强;对图像进行分割、描述和识别等。随着技术的发展,数字图像处理主要应用于通讯技术、宇宙探索遥感技术和生物工程等领域。 傅里叶变换在数字图像处理中广泛用于频谱分析,傅里叶变换是线性系统分析的一个有力工具,它使我们能够定量地分析诸如数字化系统,采样点,电子放大器,卷积滤波器,噪声,显示点等地作用(效应)。傅里叶变换(FT)是数字图像处理技术的基础,其通过在时空域和频率域来回切换图像,对图像的信息特征进行提取和分析,简化了计算工作量,被喻为描述图像信息的第二种语言,广泛应用于图像变换,图像编码与压缩,图像分割,图像重建等。因此,对涉及数字图像处理的工作者,深入研究和掌握傅里叶变换及其扩展形式的特性,是很有价值得。 (2)关于傅里叶(Fourier)变换 在信号处理中,傅里叶变换可以将时域信号变到频域中进行处理,因此傅里叶变换在信号处理中有着特殊重要的地位。 傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。傅里叶变换属于谐波分析。傅里叶变换的逆变换容易求出,而且形式与正变换非常类似;正弦基函数是微分运算的本征函数,从而使得线性微分方程的求解可以转化为常系数的代数方程的求解.在线性时不变的物理系统内,频率是个不变的性质,从而系统对于复杂激励的响应可以通过组合其对不同频率正弦信号

数字图像处理课程设计报告

本科综合课程设计报告 题 目 ____________________________ 指导教师__________________________ 辅导教师__________________________ 学生姓名__________________________ 学生学号__________________________ _______________________________ 院(部)____________________________专业________________班 ___2008___年 _12__月 _30__日 数字图像处理演示系统 信息科学与技术学院 通信工程 052

1 主要内容 1.1数字图像处理背景及应用 数字图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。目前,图像处理演示系统应用领域广泛医学、军事、科研、商业等领域。因为数字图像处理技术易于实现非线性处理,处理程序和处理参数可变,故是一项通用性强,精度高,处理方法灵活,信息保存、传送可靠的图像处理技术。本图像处理演示系统以数字图像处理理论为基础,对某些常用功能进行界面化设计,便于初级用户的操作。 1.2 图像处理演示系统设计要求 能加载和显示原始图像,显示和输出处理后的图像; 系统要便于维护和具备可扩展性; 界面友好便于操作; 1.3 图像处理演示系统设计任务 数字图像处理演示系统应该具备图像的几何变换(平移、缩放、旋转、翻转)、图像增强(空间域的平滑滤波与锐化滤波)的简单处理功能。 1.3.1几何变换 几何变换又称为几何运算,它是图像处理和图像分析的重要内容之一。通过几何运算,可以根据应用的需要使原图像产生大小、形状、和位置等各方面的变化。简单的说,几何变换可以改变像素点所在的几何位置,以及图像中各物体之间的空间位置关系,这种运算可以被看成是将各物体在图像内移动,特别是图像具有一定的规律性时,一个图像可以由另外一个图像通过几何变换来产生。实际上,一个不受约束的几何变换,可将输入图像的一个点变换到输出图像中的任意位置。几何变换不仅提供了产生某些特殊图像的可能,甚至还可以使图像处理程序设计简单化。从变换性质来分可以分为图像的位置变换、形状变换等 1.3.2图像增强 图像增强是数字图像处理的基本内容之一,其目的是根据应用需要突出图像中的某些“有用”的信息,削弱或去除不需要的信息,以达到扩大图像中不同物体特征之间的差别,使处理后的图像对于特定应用而言,比原始图像更合适,或者为图像的信息提取以及其他图像分析技术奠定了基础。一般情况下,经过增强处理后,图像的视觉效果会发生改变,这种变化意味着图像的视觉效果得到了改善,某些特定信息得到了增强。

C语言课程设计--计算器(图形界面)

扬州大 学 题目一个简易计算器的设计与实现 班级 学号 姓名 指导教师 成绩 老师评语: 扬州大学信息工程学院 2010 年6 月25

目录 一、程序设计目的: (1) 二、程序设计内容: (1) 三、课程设计所补充的内容:补充的函数或算法…………3,4 四、系统总体设计 (4) 五、系统详细设计………………………………………5,6,7,8 六、运行结果………………………………………………8,9,10 七、系统调试…………………………………………8,9,10,11 八、课程设计体会总结………………………………8,9,10,11

1 课程设计目的 (1).课程设计是一项综合性实践环节,是对平时实验的一个补充,课程设计内容包括课程的主要理论知识,但由于C语言对初学者较难掌握,因而对一个完整的C语言程序不适合平时实验。通过课程设计可以达到综合设计C语言程序的目的。 (2)通过本课程设计,可以培养独立思考,综合运用所学有关相应知识的能力,能更好地使用C语言的知识,更好地了解C语言的好处和其可用性!掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础! (3)通过本程序训练程序设计的基本技能,掌握字符串的表示方法和字符串函数的功能、自学掌握四则运算的算法及WIN-TC的图形操作的基本知识、键盘上特殊键的获取及图形方式下光标的显示。 2 课程设计内容 目的:本课程的课程设计要求学生模拟实现一个简单计算器,要求(1)能够实现四则运算,并能支持优先级运算。(2)三角与反三角运算:如sinx,cosx等。(3)指数对数运算:如log(x),lnx,e的x次方等。(4)其他运算:如X!,x 的累加等。(4)不允许调用库函数,使用自行开发的程序实现常用函数运算。(5)进一步考虑计算器外观设计,用可视化界面给出计算器外观、功能按键及输入界面。 使用说明:执行加法运算,'—'表示执行减法运算,表示执行乘法运算,'/'表示除法运算.‘Q’表示退出计算器‘C’表示清零,’=’表示得出结果'^'表示执行x的y次方,'e'表示执行e的x次方操作,'&'表示执行累加操作.,你可以可以用键盘上的上下左右键对光标进行移动,当光标移动到计算器按键上时,按ENTER即可执行该键的操作!最后按“=”则可得出结果。 3 课题设计的补充知识 本程序通过int specialkey(void)和#include来实现对屏幕的操作,通过调用int arrow()函数,int specialkey(void)和#include来实现对光标的操作。计算机图形采用Turbo C 2.0绘图程序制作。因此涉及C的图形程序设计知识。此外,由于不允许调用库函数,则要自行开发程序实现sinx,cosx,e的x次方函数运算,则可以根据幂级数的展开式来设计实现其运算的算法,而x的阶乘和x的累加则可用for语句来实现。 最后,不得不说说四则运算的算法,有两种方法可以实现:(1)利用堆栈实现四则运算(2)还可以用递归整数的四则运算。 sinx函数 #include

数字图像处理课程设计 matlab

《数字图像处理》课程设计文档 目录 一、课程设计目的 (2) 二、课程设计要求 (2) 三、课程设计的内容 (2) 四、课题分析 (3) 五、总体设计 (3) 六、具体设计 (4) 6.1、文件 (4) 6.1.1、打开 (4) 6.1.2、保存 (4) 6.1.3、打印 (4) 6.1.4、退出 (4) 6.2、直方图统计 (4) 6.2.1、R直方图 (4) 6.2.2、G直方图 (4) 6.2.3、B直方图 (4) 6.3、图像增强处里 (5) 6.3.1、直方图均衡化 (5) 6.3.2、对比度展宽 (6) 6.3.3、动态范围调整 (6) 6.3.4、空间域平滑算法 (6) 6.3.4.1、均值滤波 (7) 6.3.4.2、中值滤波 (7) 6.3.4.3、边界保持滤波 (8) 6.4、图像分割 (8) 6.4.1、均匀性度量法 (8) 6.4.2、类间最大距离法 (9) 6.4.3、局部阈值法 (9) 6.5、颜色空间转化 (9) 6..5.1、RGB转HSV (10) 6.5.2、RGB转HIS (10) 6.6、其他图像处理功能 (10) 6.6.1、锐化 (10) 6.6.2、傅里叶………………………………………………………….10\\

七、程序调试及结果分析 (11) 八、心得体会 (11) 九、参考文献 (11) 十、附录 (12) 基于MATLAB的图像处理的课程设计 一、课程设计目的 1、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。 2、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。 二、课程设计要求 1、要求独立完成设计项目,开发工具为MATLAB,也可为C、C++、java等, 具体自选。各组长有责任督促组员完成任务并提交报告; 2、时间为4月28日~6月28日为其两个月的业余时间。 三、课程设计的内容 学习MATLAB GUI程序设计,利用MATLAB图像处理工具箱,设计和实现自己的Photoshop 。要求:按照软件工程方法,根据需求进行程序的功能分析和界面设计,给出设计详细说明。然后按照自己拟定的功能要求进行程序设计和调试。

相关主题
文本预览
相关文档 最新文档