Скрипт Raspberry Pi CGI с OpenCV без сохранения изображений

0

Я пытаюсь создать сценарий CGI, который сделает снимок и сохранит его в том месте, которое я ему даю. Я использую малиновый Pi и модуль камеры Pi с драйвером uv4l. Я также решил использовать Apache2.

В настоящее время скрипт работает без ошибок и ошибок в журнале ошибок Apache, но изображение не сохраняется. Камера открыта, потому что на ней появляется красный свет. Я также проверяю, нет ли изображения пустым, которого нет.

До сих пор я пытался изменить права доступа к папкам, чтобы пользователь pi владел всем. Я также попытался сохранить уже существующий файл, но он никогда не обновляется. Я никогда не использовал сценарии Apache2 или CGI, прежде чем я чувствую, что проблема в нем, но я не совсем уверен, что искать, потому что у меня нет ошибок. Любые предложения будут ценны.

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char** argv){

    cv::VideoCapture cap(-1);
    if (!cap.isOpened()){
            cout << "Content-type:text/html\r\n\r\n";
            cout << "<html>";
            cout << "<h1> Camera didn't open </h1>";
            cout << "</html>";
            return -1;
    }
    //cap.set(CV_CAP_PROP_FRAME_WIDTH, 320);
    //cap.set(CV_CAP_PROP_FRAME_HEIGHT, 240);
    int count = 40;
    cv::Mat frame;
    bool bSuccess = cap.read(frame);
    while (count != 0){
            count--;
    }
    if (!bSuccess){

            cout << "Content-type:text/html\r\n\r\n";
            cout << "<html>";
            cout << "<h1> Photo did't work get read in</h1>";
            cout << "</html>";

            return 0;
    }

    cout << "Content-type:text/html\r\n\r\n";
    cout << "<html>";
    cout << "<h1> Photo Taken + Saved</h1>";
    cout << "</html>";
    cv::imwrite("/var/www/photos/Current.png", frame);

    return 0;
}

Я использую эту команду для компиляции:

g++ -lopencv_core -lopencv_highgui -L/usr/lib/uv4l/uv4lext/armv6l -luv4lext -Wl,-  rpath,'/usr/lib/uv4l/uv4lext/armv6l' time.cpp -o test_script.cgi    
Теги:
opencv
cgi
apache2
raspberry-pi

1 ответ

0
Лучший ответ

Я исправил свою проблему. Метод imwrite() сохранял уже существующее изображение без разрешения на запись.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню