- 3
- 0
- 约8.18千字
- 约 8页
- 2017-07-25 发布于湖北
- 举报
中国地质大学(武汉)
数字图像处理实验报告
学 院:
班 级:
姓 名:
学 号:
指导老师:
实验目的
用C语言实现用直接灰度变换改变图像(求反,增强对比度,动态范围压缩,灰度切分)
实验过程
弄明白自己的任务之后,去尝试自己写出这个程序时,却毫无头绪。之后紧接着的考试,我慢慢忘了,我还有这个任务。快到5月1号的时候,我和徐明权商量 程序到手以后,还算是比较认真的研究了程序,一共4个程序,每个程序也只能明白其中的一些基本语句。更多的,还是看不懂,搞不明白干嘛的。我就把不懂的语句用百度搜索,字面意思倒能看明白,若是让我自己运用编写的话,又会是一筹莫展了。
不过,通过查阅,了解到了如果要用C语言实现用直接灰度变换改变图像(求反,增强对比度,动态范围压缩,灰度切分),需要使用Opencv中的IplImage结构 是一个基于(开源)发行的跨平台计算机视觉库, 由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了和计算机视觉方面的很多通用算法。 IplImage结构来源于Intel的另外一个函数库Intel Image Processing Library (IPL),该函数库主要是针对IplImage结构 图像载入函数
函数cvLoadImage载入指定图像文件,并返回指向该文件的IplImage指针。函数支持bmp、jpg、 png、 tiff等格式的图像。其函数原型如下:
IplImage* cvLoadImage( const char* filename, int iscolor);
其中,filename 是待载入图像的名称,包括图像的扩展名;iscolor是一个辅助参数项,可选正数、零和负数三种值,正数表示作为三通道图像载入,零表示该图像作为单通道图像,负数表示载入图像的通道数由图像文件自身决定。
2. 窗口定义函数
函数cvNamedWindow定义一个窗口,用于显示图像。其函数原型如下:
int cvNamedWindow( const char* name, unsigned long flags );
其中,name是窗口名,flags是窗口属性指标值,可以选择CV_WINDOW_AUTOSIZE和0两种值。CV_WINDOW_AUTOSIZE表示窗口尺寸与图像原始尺寸相同,0表示以固定的窗口尺寸显示图像。
3. 图像显示函数
函数cvShowImage是在指定的窗口中显示图像,其函数原型如下:
void cvShowImage( const char* name, const CvArr* image );
其中,name是窗口名称,image是图像类型指针,一般是IplImage指针。
4. 图像保存函数
函数cvSaveImage以指定的文件名保存IplImage类型的指针变量,其函数原型如下:
int cvSaveImage( const char* filename, const CvArr* image );
其中,filename是图像保存路径和名称,image是IplImage指针变量。
5. 图像销毁函数
函数cvReleaseImage销毁已定义的IplImage指针变量,释放占用内存空间。其函数原型如下:
void cvReleaseImage( IplImage** image );
其中,image为已定义的IplImage指针。
int origin; /*图像原点位置: 0表示顶-左结构,1表示底-左结构 */
int align; /* 图像行排列方式 (4 or 8),在 OpenCV 被忽略,使用 widthStep 代替 */
int width; /* 图像宽像素数 */
int height; /* 图像高像素数*/
百度百科
附程序
实现动态范围压缩:
#include cv.h
#include highgui.h
#include cxcore.h
int main()
{
IplImage* src = NULL;
原创力文档

文档评论(0)