私は C も C++ もあまり使用しませんが、opencv で顔を検出するファイルのコンパイルを終了しようとしています。これは、ソーシャル ネットワークでタグ付けするための C++ ファイルのコピーです。次のコンパイル時にコードを取得する
In function 'main':
warning: assignment from incompatible pointer type
int main( int argc, char** argv[])
{
char* dea;
int i=0;
while(i<argc)
{
if(i==1){
dea=argv[i];
}
i++;
}
char image[400],temp_image[400];
IplImage *img,*temp_img;
int key;
storage = cvCreateMemStorage( 0 );
cascade = ( CvHaarClassifierCascade* )cvLoad( face_cascade, 0, 0, 0 );
if( !(cascade) )
{
fprintf( stderr, "ERROR: Could not load classifier cascade\n" );
return -1;
}
sprintf(image,"dimage%d.jpg");
img=cvLoadImage(dea,0);
temp_img=cvLoadImage(dea,0);
if(!img)
{
printf("Could not load image file and trying once again: %s\n",image);
}
printf("\n curr_image = %s",image);
detectFacialFeatures(img,temp_img);
cvReleaseHaarClassifierCascade( &cascade );
cvReleaseMemStorage( &storage );
cvReleaseImage(&img);
cvReleaseImage(&temp_img);
return 0;
}
実行可能ファイルの後の最初の引数として、解析する写真の場所を argv[] に送信できるようにしたいので、ループを使用して char* dea; に割り当てようとしました。i が 1 の場合の argv[i] の値。
私は dea=argv[1] をします
しかし、それは別の種類のエラーをスローするため、このアプローチを採用しました。