Linux 实现人脸识别

时间:2025-04-06 08:00:46
#include <> #include <curl/> #include<> #include<> #include <sys/> #include <sys/> #include <> #include <> #define true 1 #define false 0 typedef unsigned int bool; char Buf[12000]; size_t readData( void *ptr, size_t size, size_t nmemb, void *stream) { strncpy(Buf,ptr,1024); printf("============================get data============================"); printf("%s\n",Buf); } //将图片转换为base64格式 char *readBase64(char *filePath) { char *bufPic; char cmd[128]; memset(cmd,'\0',128); sprintf(cmd,"base64 %s > tmpFile",filePath); system(cmd); int fd = open("./tmpFile",O_RDWR); int filelen = lseek(fd,0,SEEK_END); lseek(fd,0,SEEK_SET); bufPic = (char *)malloc(filelen+2); bufPic = memset(bufPic,'\0',filelen+2); read(fd,bufPic,filelen); system("rm -f tmpFile"); close(fd); return bufPic; } bool postUrl() { CURL *curl; CURLcode res; char *pointData; char *key = "UbkpH8e8ydNsj6uhHUecDu"; char *secret = "1026b30b3cb7468e9d301afe73dce9f9"; int typeId = 21; char *format = "xml"; char *bufPic1; char *bufPic2; bufPic1 = readBase64("./"); bufPic2 = readBase64("./"); int len = strlen(key)+strlen(secret)+strlen(bufPic1)+strlen(bufPic2)+128; pointData = (char *)malloc(len); memset(pointData,'\0',len); sprintf(pointData,"&img1=%s&img2=%s&key=%s&secret=%s&typeId=%d&format=%s",bufPic1,bufPic2,key,secret,21,format); //printf("%s\n",pointData); // int fp =open("./",O_RDWR|O_CREAT,0666); curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl,CURLOPT_POSTFIELDS,pointData); curl_easy_setopt(curl,CURLOPT_URL,"/api/"); curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,readData); res = curl_easy_perform(curl); printf("OK:%d\n",res); if(strstr(Buf, "是") != NULL){ printf("the person same\n"); } else{ printf("the person different\n"); } curl_easy_cleanup(curl); } return true; } int main(void) { postUrl(); }