数字图像处理03-数学基础

  • 格式:ppt
  • 大小:7.10 MB
  • 文档页数:112

下载文档原格式

  / 112
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Gray R 0.299 G 0.587 B 0.114
Page 20
(3)彩色图像的灰度化方法
for(int x = 0; x < sizeimage.cx; x++) for(int y = 0; y < sizeimage.cy; y++) { RGBQUAD color; color = mybmp.GetPixel(x,y); //RGB图像转灰度图像 Gray = R*0.299 + G*0.587 + B*0.114 double gray = color.rgbRed*0.299 + color.rgbGreen*0.587 + color.rgbBlue*0.114; color.rgbBlue = (int)gray; color.rgbGreen = (int)gray; color.rgbRed = (int)gray; graybmp.WritePixel(x, y,color); }
Matlab读入图像的类型包括强度图像(即灰度图像)、二进 制图像、索引图像和RGB图像。
Page 18
(2)图像显示方法(1)
(1)Matlab方法 例如:I=imread(‘x.bmp’); imshow(I) (2)OpenCV方法
Page 19
(3)彩色图像的灰度化方法
彩色图像的灰度化处理方法如下:对于彩色图像中的任意一个 像素,如果其RGB的三个分量分别为R、G和B,该图像像素的 灰度Gray值一般用下面公式进行计算:
OpenCV 网址
http://opencv.org/ http://www.opencv.org.cn/
Page 11
OpenCV参考手册
CxCore中文参考手册 Cv中文参考手册 CvAux中文参考手册 HighGUI中文参考手册
Page 12
OpenCV 图像处理基础
Page 14
(2)图像显示方法(2)
OpenCV使用cvShowImage函数显示图像,其调用方法如下:
cvShowImage( "Image", pImg ); 其中pImg表示已经定义的图像指针,Image为显示窗口的名称。 例如: IplImage* pImg; //读入图像 pImg =cvLoadImage("lena.jpg",1); //声明IplImage指针
(2) OpenCV库结合C(或C++)
Intel® 开源计算机视觉库OpenCV
图像处理
结构分析 运动分析与对象跟踪 模式识别 照相机定标和三维重建

OpenCV是Intel®开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机 视觉方面的很多通用算法
Page 10
– ind2rgb 将索引色图像转换成真彩色图像
– mat2gray 将一个数据矩阵转换成一副灰度图 – rgb2gray 将一副真彩色图像转换成灰度图像;
– rgb2ind 将真彩色图像转换成索引色图像
Page 17
(1)图像读入方法(1)
Matlab方法 I=imread(‘x.bmp’); 或I=imread(‘x’,‘bmp’); 用Matlab方法读入图像在上章已经阐述:
Page 23
3.1.1 线性系统分析
任何一个实际系统,当给定一个输入信 号u(t),则产生相应的输出信号y(t),系统 的输入信号与输出信号之间实质上是一种数 学运算,可以采用如图3-1所示的模型表示。
图3-1 应用系统模型
Page 24
Page 25
3.1.2 移不变系统分析
Page 26
mydib.WritePixel(35,49,color);
将(35,49)坐标处的像素置为当前color的颜色值。
Page 5
(1)图像读入方法(3)
利用MFC的打开文件对话框实现打开图像文件的代码如下:
CDib mybmp; CSize sizeimage;
void CImageprocessView::OnOpen()
Page 3
(1) CDib类方法
Page 4
(1) CDib类方法(续)
CDib类:完成bmp的操作
定义对象 CDib mydib; (包括头文件CDib.h) 读取像素的方法:
mydib.GetPixel(20,40);
读取(20,40)坐标处的像素颜色值,返回颜色数值 写像素的方法:
{
AfxMessageBox("cannot open the file"); return; }
Page 7
(2)图像显示方法(3)
CDib类的方法
在MFC的View类中加入OnDraw成员函数,利用该成员函 数在View中显示图像,假设mybmp是图像类的对象,
将屏幕设备坐标系的m_origin位置作为图像原点,绘制尺 度为sizeimage的图像为:
{ //定义CFileDialog类的对象
CFileDialog FileDlg(TRUE, _T("*.bmp"), "",OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_HIDEREA DONLY,"image files (*.bmp) |*.bmp|AVI files (*.avi) |*.avi|All Files
(2)Matlab方法
imread的使用方法
imread:读取matalab的真彩图像 图像格式转换函数:
– gray2ind 将灰度图像转换成索引图像
– grayslice 通过设定阈值将灰度图像转换成索引色图像 im2bw 通过设 定亮度阈值将真彩色、索引色、灰度图转换成二值图 – ind2gray 将索引色图像转换成灰度图像
3.3 卷积和滤波
– 3.3.1 连续卷积分析
– 3.3.2 离散卷积分析
– 3.3.3 滤波分析
Page 36
3.3.1 连续卷积分析
Page 37
3.3.2 离散卷积分析
Page 38
3.3.3 滤波分析
卷积运算在信号处理和图像处理学科中通常称 为滤波。 一个线性移不变系统输入和输出之间的关系, 既可以采用传递函数进行描述,也可以采用卷积的 形式进行描述。 也就是说,线性移不变系统的输出可通过输入 信号与系统的冲击响应函数h(t)的卷积得到,即
1、加入头文件 #include "cv.h" #include "highgui.h“ 2、使用
IplImage *img1;
img1=cvLoadImage(path,1); img11=cvLoadImage(path,0);
Page 13
(1)图像读入方法(2)
OpenCV方法 IplImage* img = 0; img=cvLoadImage("lena.jpg",1); //异常判断 if(!img){ printf("Could not load image file: %s\n", filename); exit(0); }
cvNamedWindow( "Image", 1 ); //创建窗口
cvShowImaБайду номын сангаасe( "Image", pImg ); //显示图像 cvWaitKey(0); //等待按键 //释放图像 cvDestroyWindow( "Image" ); //销毁窗口 cvReleaseImage( &pImg );
(*.*)|*.*||",NULL);
Page 6
(1)图像读入方法(3)
char title[]= {"Open Image"};
FileDlg.m_ofn.lpstrTitle= title; CFile file ;
if( FileDlg.DoModal() == IDOK )
{ if(!file.Open(FileDlg.GetPathName(), CFile::modeRead))
Page 21
第3章数字图像处理的数学基础及相关运算
3.1 线性系统 3.2 调谐信号 3.3 卷积和滤波 3.4 关联函数 3.5 运算类型 3.6 二维系统 3.7 点运算 3.8 代数运算 3.9 特定区域处理
Page 22
3.1 线性系统
– 3.1.1 线性系统分析 – 3.1.2 移不变系统分析
3.2 调谐信号
– 3.2.1 调谐信号分析 – 3.2.2 对调谐信号的响应分析 – 3.2.3 系统传递函数分析
Page 27
3.2.1 调谐信号分析
Page 28
3.2.2 对调谐信号的响应分析
Page 29
Page 30
Page 31
3.2.3 系统传递函数分析
– C(或C++)的程序结构 – MFC的程序框架(用向导生成框架) – 用Windows的程序框架
图像处理利用类的对象,通过成员函数实现 例如: CDib m_pDibInit; if(!m_pDibInit->Read(&file)) { AfxMessageBox("cannot read the file"); return; }
y(t ) u( )h(t )d h( )u(t )d
∞ ∞
u(t )* h(t )
Page 39
Page 40
3.4 关联函数
– 3.4.1 关联函数的定义分析
– 3.4.2 关联与卷积的关系分析
Page 41
3.4.1 关联函数的定义分析
1.传递函数的形式
对于线性移不变系统,式( 2-15 )描述 了输入信号与输出信号之间的关系,其中H() 称为系统的传递函数。 传递函数 H() 包含了所表示系统的全部 特征。
Page 32
Page 33
2.线性移不变系统对余弦信号的输出
Page 34
A()为系统的增益因子,代表系统对输入信号
Page 42
1.自关联函数
Page 43
2.互关联函数
Page 44
3.4.2 关联与卷积的关系分析
Page 45
3.5 运算类型
具有代表性的图像处理典型算法从功能 上包括以下几种: (1)单幅图像→单幅图像 (2)多幅图像→单幅图像 (3)单幅图像或多幅图像→数值/符号 等
的缩放比例。 为输出信号的相位,其作用是将调谐输入信 号的时间坐标加以平移。 综上所述,线性移不变系统具有以下性质: (1)调谐输入产生同频率的调谐输出; (2)系统的传递函数是一个仅依赖于频率的复 函数,它包含了系统的全部特征信息; (3)传递函数对调谐输入信号仅产生幅值的缩 放和相位的平移。
Page 35
Page 15
(3)matlab处理方法
M文件编写
%读取图像; I=imread('sag.bmp'); figure(1); imshow(I);
%将图像转换为灰度图像 J=rgb2gray(I); figure(2); imshow(J); %存盘 %imwrite(J,'e:/photo2.bmp'); Page 16
CDib mybmp;
CPoint m_origin;
CSize sizeimage(100,200); mybmp.Draw(pDC,m_origin,sizeimage); //在的窗口内显示图 像
Page 8
(1)图像读入方法(3)
if(!mybmp.Read(&file)) { AfxMessageBox("cannot read the file"); return; } } if (mybmp.m_lpBMIH->biCompression != BI_RGB) { AfxMessageBox("Can not read compressed file."); return ; } //取得图像的尺度 sizeimage=mybmp.GetDimensions(); Page 9 }
数字图像处理 Digital Image Processing
第二讲 图像的数字化
温 静
wjing@sxu.edu.cn
编程方法
三种形式选一
– C++的CDIB类方法
– OpenCV库结合C(或C++) – Matlab
Page 2
(1) CDIB类方法
图像处理的功能封装为CDIB类