gpt4 book ai didi

从图像创建 AR 标记

转载 作者:太空宇宙 更新时间:2023-11-04 04:00:41 28 4
gpt4 key购买 nike

最近我在使用 ARToolKit 工作,我面临着从静态图像创建 AR 标记的必要性。因此,正如 ARToolKit 旧时事通讯中所建议的那样,我开始编写自己的视频函数,当我执行 mk_patt.exe 时,它​​应该取代标准的 Win32DirectShow 函数。我的视频功能具有以下结构:

int arVideoOpen( char *config ) {
return 0;
}

int arVideoClose( void ){
return 0;
}

int arVideoDispOption( void ){
return 0;
}

int arVideoInqSize( int *x, int *y ){
*x = xsize;
*y = ysize;
}

ARUint8 *arVideoGetImage( void )
{
FILE *pFile;
unsigned long Size;
unsigned char *buffer;
size_t result;

pFile = fopen("hhgf.bmp","rb");
if(pFile==0){
printf("Error!\n");
}
else{
fseek(pFile, 0, SEEK_END);
Size = ftell( pFile );
printf("Size: %d \n",Size);
fseek(pFile, 0, SEEK_SET);
buffer = (unsigned char*) malloc (Size);
if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);}
result = fread (buffer, Size,1, pFile);
if (result != Size) {fputs ("Reading error",stderr); }
return (ARUint8 *) buffer;
}
}

int arVideoCapStart( void ){
return 0;
}

int arVideoCapStop( void ) {
return 0;
}

int arVideoCapNext( void )
{
return 0;
}

焦点方法是arVideoGetImage,它应该返回我的图像数据。我不是很懂 C,所以我在方法中加入了一些我在网上找到的简单代码,但是当我运行 mk_patt.exe 时,它​​崩溃了。我需要一些帮助来了解如何对此进行编码,或者这是否是实现我的目的的正确方法。

最佳答案

我是这样解决的

ARUint8 *getBack(){
int i;
unsigned char *buffer;
int Size;
FILE *streamIn;
int byte;
int count = 0;
//printf("What wath %d \n",AR_DEFAULT_PIXEL_FORMAT);
if(!isDef){
image = (int *) malloc(400*400*sizeof(int));
streamIn = fopen("hhgf.bmp", "rb");

fseek( streamIn, 0, SEEK_END);
Size = ftell( streamIn );
fseek( streamIn, 0, SEEK_SET);

if (streamIn == (FILE *)0){
printf("File opening error ocurred. Exiting program.\n");
exit(0);
}


for(i=0;i<(Size-(400*400));i++) byte= getc(streamIn);
i=0;
while((count=getc(streamIn))!=-1){
image[i]=count;
i++;
}

fclose(streamIn);

isDef=true;
}

return (ARUint8 *)image;
}


ARUint8 *arVideoGetImage( void ){
return getBack();
}

关于从图像创建 AR 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11961266/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com