• 大小: 4.31MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-28
  • 语言: 其他
  • 标签: census  c语言  匹配  

资源简介

该算法分别实现了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.embed.manifest

     文件        728  2011-12-29 13:21  census c++\census\Debug\census.exe.embed.manifest.res

     文件        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


评论

共有 条评论