資源簡介
該算法分別實現(xiàn)了Debug版本和Release版本的調(diào)試。對原始算法做了進一步的改進,在速度和實現(xiàn)質(zhì)量都有了很大的提高。

代碼片段和文件信息
#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?????{?
????????for(int?i?=?0;?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?????????????????{?
if(!(a==i+offset?&&?b==j+offset))
?census?=?census?<1;//左移1位?
????????????????????
double?temp_value?=?cvGetReal2D(&window?a?b);?
????????????????????if(temp_value?????????????????????????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?“<
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
評論
共有 條評論