资源简介
该算法分别实现了Debug版本和Release版本的调试。对原始算法做了进一步的改进,在速度和实现质量都有了很大的提高。

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
IplImage* CensusTransform(IplImage *input_image int window_size)
{
CvSize image_size=cvGetSize(input_image);
int image_width=image_size.width;
int image_height=image_size.height;
//-----Create an image of size image_width and image_height fill it with zeros -----
IplImage *modified_image = NULL;
switch (window_size)
{
case 3:
modified_image = cvCreateImage(image_size IPL_DEPTH_8U 1);
cvSetZero(modified_image);
break;
case 5:
modified_image = cvCreateImage(image_size IPL_DEPTH_32S 1);
cvSetZero(modified_image);
break;
default:
printf(“window size must be 3 or 5!\n“);
exit(EXIT_FAILURE);
}
//-----------census变换---------------------------------
CvMat window;
int offset=(window_size-1)/2;
for(int j = 0; j < image_width - window_size; j++)
{
for(int i = 0; i < image_height - window_size; i++)
{
unsigned long census = 0;
double current_pixel=cvGetReal2D(input_imagei+offsetj+offset);
CvRect roi = cvRect(j i window_size window_size);
cvGetSubRect(input_image &window roi);
//CvScalar m = cvAvg(&window NULL);
for(int a = 0; a {
for(int b = 0; b < window_size; b++)
{
if(!(a==i+offset && b==j+offset))
census = census << 1;//左移1位
double temp_value = cvGetReal2D(&window a b);
if(temp_value < current_pixel)
census += 1;
}
}
cvSetReal2D(modified_image i+offset j+offset census);
}
}
return modified_image;
}
int main(int argcchar * const argv[])
{
char* filename=“im2.png“; //图片路径
IplImage* greyImage=cvLoadImage(filename0);
if (greyImage==NULL){cout << “No valid image input.“<
int window_size=3;
time_t tstarttend;
tstart=time(0);
IplImage* ctImage=CensusTransform(greyImagewindow_size);
tend=time(0);
cout << “It took “<< difftime(tend tstart) <<“ second(s).“<< endl;
cvShowImage(“greyImage“greyImage);
cvShowImage(“ctImage“ctImage);
//cvSaveImage(“D:\\My Documents\\Visual Studio 2008\\Projects\\census\\greyImage.jpg“greyImage);
//cvSaveImage(“D:\\My Documents\\Visual Studio 2008\\Projects\\census\\ctImage.jpg“ctImage);
cvWaitKey(0);
cvDestroyWindow(“greyImage“);
cvDestroyWindow(“ctImage“);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4189 2011-12-29 12:43 census c++\census\census.vcproj
文件 1427 2012-01-08 19:29 census c++\census\census.vcproj.EFAEA25E2B674A3.Administrator.user
文件 7600 2011-12-30 18:35 census c++\census\Debug\BuildLog.htm
文件 663 2011-12-29 13:21 census c++\census\Debug\census.exe.em
文件 728 2011-12-29 13:21 census c++\census\Debug\census.exe.em
文件 621 2011-12-30 18:35 census c++\census\Debug\census.exe.intermediate.manifest
文件 98114 2011-12-30 18:35 census c++\census\Debug\main.obj
文件 67 2011-12-30 18:35 census c++\census\Debug\mt.dep
文件 740352 2011-12-30 18:35 census c++\census\Debug\vc90.idb
文件 708608 2011-12-30 18:35 census c++\census\Debug\vc90.pdb
文件 2796 2012-01-08 19:29 census c++\census\main.cpp
文件 14511104 2012-01-08 19:29 census c++\census.ncb
文件 884 2011-12-29 10:36 census c++\census.sln
..A..H. 13824 2012-01-08 19:29 census c++\census.suo
文件 41984 2011-12-30 18:35 census c++\Debug\census.exe
文件 620936 2011-12-30 18:35 census c++\Debug\census.ilk
文件 1125376 2011-12-30 18:35 census c++\Debug\census.pdb
文件 362946 2003-06-08 21:44 census c++\im2.png
文件 31993 2011-11-30 20:11 census c++\L.jpg
..A.SH. 7680 2011-12-30 21:33 census c++\Thumbs.db
目录 0 2015-08-01 18:09 census c++\census\Debug
目录 0 2015-08-01 18:09 census c++\census
目录 0 2015-08-01 18:09 census c++\Debug
目录 0 2015-08-01 18:09 census c++
----------- --------- ---------- ----- ----
18281892 24
相关资源
- MP3文件ID3v2ID3v2APEv2标签读取
- 课程作业:模拟仓库管理系统
- 一个简单实用个人日记管理系统
- 带时间温度显示的室内灯光控制系统
- 文学研究助手(字符串的查找模式匹
- 字符串括号匹配(c实现)
- 成绩管理系统(数据结构)
- FIR低通滤波器 ccs运行环境
- 基于MO实现CAD数据转换为Shape数据后的
- 基于NFC技术控制的电子钱包电路设计
- IBM System Storage DS3300按中小企业信息价
- C malloc函数用法
- 增程式电动车动力系统参数匹配及仿
- 基于ECE法规的缓速器制动力与制动力
- LL(1)文法的递归下降分析程序例题
- 手写数字识别-模板匹配法
- siftDemoV4.zip
- 嵌入式局域网聊天系统客户端
- 基于相关系数的影像匹配
- 算法竞赛入门经典 第2版刘汝佳+高清
- 基于概率神经网络的图匹配算法研究
- 基于单片机的GPS定位及显示系统设计
- 链表实现通讯录管理系统
- PowerShell-6.2.1-win-x86.zip
- pl/0编译器 语法分析
- 计算二分图最大匹配的Hopcroft-Karp算法
- 源程序阅读与调试课程设计报告--学生
- 谁说程序员不浪漫?!基于easyX图形库
- LFM信号匹配滤波器能量检测、循环相
- 编译原理课设c编译器
评论
共有 条评论