下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include <cxcore.h>#include <cv.h>#include <highgui.h>/ 以图像中心为原点,调整傅立叶变换图像的四个象限区,即第一和第三象限交换/ 第二和第四象限交换void cvShiftDFT(CvArr * src_arr, CvArr * dst_arr ) CvMat * tmp; CvMat q1stub, q2stub; CvMat q3stub, q4stub; CvMat d1stub, d2stub; CvMat d3stub, d4stub; CvMat * q1, * q2, * q3, * q4
2、; CvMat * d1, * d2, * d3, * d4; CvSize size = cvGetSize(src_arr); CvSize dst_size = cvGetSize(dst_arr); int cx, cy; if(dst_size.width != size.width | dst_size.height != size.height) cvError( CV_StsUnmatchedSizes, "cvShiftDFT", "Source and Destination arrays must have equal sizes"
3、, _FILE_, _LINE_ ); if(src_arr=dst_arr) tmp = cvCreateMat(size.height/2, size.width/2, cvGetElemType(src_arr); cx = size.width/2; cy = size.height/2; / image center q1 = cvGetSubRect( src_arr, &q1stub, cvRect(0,0,cx, cy) ); q2 = cvGetSubRect( src_arr, &q2stub, cvRect(cx,0,cx,cy) ); q3 = cvGe
4、tSubRect( src_arr, &q3stub, cvRect(cx,cy,cx,cy) ); q4 = cvGetSubRect( src_arr, &q4stub, cvRect(0,cy,cx,cy) ); d1 = cvGetSubRect( src_arr, &d1stub, cvRect(0,0,cx,cy) ); d2 = cvGetSubRect( src_arr, &d2stub, cvRect(cx,0,cx,cy) ); d3 = cvGetSubRect( src_arr, &d3stub, cvRect(cx,cy,cx,
5、cy) ); d4 = cvGetSubRect( src_arr, &d4stub, cvRect(0,cy,cx,cy) ); if(src_arr!=dst_arr) if( !CV_ARE_TYPES_EQ( q1, d1 ) cvError( CV_StsUnmatchedFormats, "cvShiftDFT", "Source and Destination arrays must have the same format", _FILE_, _LINE_ ); cvCopy(q3, d1, 0); cvCopy(q4, d2,
6、0); cvCopy(q1, d3, 0); cvCopy(q2, d4, 0); else cvCopy(q3, tmp, 0); cvCopy(q1, q3, 0); cvCopy(tmp, q1, 0); cvCopy(q4, tmp, 0); cvCopy(q2, q4, 0); cvCopy(tmp, q2, 0); int main(int argc, char * argv) const char* filename = argc >=2 ? argv1 : "lena.jpg" IplImage * im; IplImage * realInput;
7、IplImage * imaginaryInput; IplImage * complexInput; int dft_M, dft_N; CvMat* dft_A, tmp; IplImage * image_Re; IplImage * image_Im; double m, M; im = cvLoadImage( filename, CV_LOAD_IMAGE_GRAYSCALE ); if( !im ) return -1; realInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 1); imaginaryInput = cv
8、CreateImage( cvGetSize(im), IPL_DEPTH_64F, 1); complexInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 2); cvScale(im, realInput, 1.0, 0.0); cvZero(imaginaryInput); cvMerge(realInput, imaginaryInput, NULL, NULL, complexInput); dft_M = cvGetOptimalDFTSize( im->height - 1 ); dft_N = cvGetOptima
9、lDFTSize( im->width - 1 ); dft_A = cvCreateMat( dft_M, dft_N, CV_64FC2 ); image_Re = cvCreateImage( cvSize(dft_N, dft_M), IPL_DEPTH_64F, 1); image_Im = cvCreateImage( cvSize(dft_N, dft_M), IPL_DEPTH_64F, 1); / copy A to dft_A and pad dft_A with zeros cvGetSubRect( dft_A, &tmp, cvRect(0,0, im-
10、>width, im->height); cvCopy( complexInput, &tmp, NULL );cvGetSubRect( dft_A, &tmp, cvRect(im->width,0, dft_A->cols - im->width,im->height); /cvZero( &tmp ); / no need to pad bottom part of dft_A with zeros because of / use nonzero_rows parameter in cvDFT() call below cv
11、DFT( dft_A, dft_A, CV_DXT_FORWARD, complexInput->height ); cvNamedWindow("win", 0); cvNamedWindow("magnitude", 0); cvShowImage("win", im); / Split Fourier in real and imaginary parts cvSplit( dft_A, image_Re, image_Im, 0, 0 ); / 计算功率谱 Mag = sqrt(Re2 + Im2) cvPow( ima
12、ge_Re, image_Re, 2.0); cvPow( image_Im, image_Im, 2.0); cvAdd( image_Re, image_Im, image_Re, NULL); cvPow( image_Re, image_Re, 0.5 ); / 计算 log(1 + Mag) cvAddS( image_Re, cvScalarAll(1.0), image_Re, NULL ); / 1 + Mag cvLog( image_Re, image_Re ); / log(1 + Mag) / 重新安排四个象限,使得原点在图像中心 cvShiftDFT( image_Re, image_Re );/ 调整显示象素的区间,保证最大值为白
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-宁夏-宁夏土建施工人员三级(高级工)历年参考题库含答案详解
- 2026事业单位工勤技能-天津-天津保育员三级(高级工)历年参考题库含答案详解
- 2026事业单位工勤技能-四川-四川医技工五级(初级工)历年参考题库含答案详解
- 2026事业单位工勤技能-吉林-吉林客房服务员三级(高级工)历年参考题库含答案详解
- 2026事业单位工勤技能-内蒙古-内蒙古计量检定工四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-上海-上海造林管护工五级(初级工)历年参考题库含答案详解
- -七年级上学期第三次调研测试生物试卷
- -七年级上学期期末模拟英语试题
- -七年级上学期期中考试英语试卷III
- 2026年蒙山县网格员招聘笔试参考题库及答案解析
- 2026年财务国企招聘笔试题库(完整版含答案解析)
- 2026广西辅警笔试真题题库(含答案解析·全区完整版)
- 2026-2027学年第一学期高二化学教学工作计划
- 【2026】年家畜繁殖员职业技能鉴定题库及解析(附答案与解释)
- 资金托盘业务合同
- 踢踏舞曲-Zapateado;罗德里戈(Joaquín-Rodrigo-Vidre)古典吉他谱
- 2026四川宜宾三江新区事业单位第一次考核招聘工作人员24人考试备考试题及答案解析
- 特殊的平行四边形-黄金矩形 教学设计(2025-2026学年人教版数学八年级下册)
- 医疗卫生机构消毒灭菌操作流程
- 陕西省XX煤矿有限公司2煤大巷煤柱回收设计
- 机械厂车工计件制度规范
评论
0/150
提交评论