os X (lion)에서 opencv C++ (eclipse)를 사용하여 얼굴 탐지 앱을 프로그래밍하고 있습니다. 프로그램은 이미지 파일을로드하고 얼굴을 탐지 한 다음 각 얼굴을 개별 파일에 저장합니다. 이 프로그램은 명령 행이나 일식에서와 같이 100 % 작동합니다. 그런 다음 누군가가 jpg 또는 png 파일을 업로드 할 수 있도록 파일 업로드 용 PHP 스크립트를 작성한 후 스크립트는 고유 한 파일 이름으로 사진을 저장합니다. 그런 다음 PHP 스크립트의 끝에서 얼굴 감지 프로그램을 실행합니다.opencv C++에서 프로그램을 실행할 때 cvSaveImage가 저장되지 않습니다
커맨드 라인에서 응용 프로그램을 실행하고 PHP를 실행하여 응용 프로그램을 실행하는 데 어떤 차이가 있는지 잘 모르겠습니다. 여기에 내 코드가있다. ++ C에서
기능 :
cvNamedWindow ("ROI", CV_WINDOW_AUTOSIZE);
cvCvtColor(clone, gray, CV_RGB2GRAY);
cvSetImageROI (gray, *r);
//// * rectangle = cvGetImageROI (clone);
*r = cvGetImageROI (gray);
cvShowImage ("ROI", gray);
k++;
char *name=0;
name=(char*) calloc(512, 1);
sprintf(name, "/Users/jason/Sites/jason.dev/images/proc_images/Image%d.png", k);
cvSaveImage(name, gray);
PHP 스크립트 :
<?php
mysql_connect("127.0.0.1:3306","xxxx","xxxx");
mysql_select_db("opencv_development");
$uploaddir = "images/";
$file = basename($_FILES['uploadedfile']['name']);
$stamp = date("YmdHis");
$random = rand(0, 999);
$newName = $uploaddir . $stamp . $random . $file;
if ($_FILES['uploadedfile']['size']> 300000) //Limiting image at 300K
{
exit("Your file is too large.");
}
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $newName)) {
echo "The file ". basename($_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
mysql_query("INSERT INTO recv_img (photo_name) VALUES ('$newName')");
shell_exec("./opencv '$newName'");
?>
난 단말기에서 응용 프로그램을 실행하는 경우 다음 개별 얼굴 파일 출력 위에서 말했듯. PHP 스크립트에서 실행되면 이미지가 애플리케이션으로로드되고 얼굴 인식은 수행되지만 개별 얼굴 파일은 저장되지 않습니다.
추가 정보가 필요한지 또는 뭔가 명확하지 않은 경우 알려주십시오. 어떤 도움이라도 대단히 감사합니다!
PHP 스크립트를 실행중인 사용자에게 파일을 저장 한 디렉토리에 쓰기 권한이 있습니까? – alexisdm
예, 터미널에서 opencv 앱을 실행하는 데 동일한 사용자 계정을 사용할 수 있으며 파일을 저장할 수 있다고 생각합니다. – jmo