用C解决第四题075103赵白杨 副本.docVIP

  • 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)

1亿VIP精品文档

相关文档