У меня есть серая камера (НЕ ЦВЕТ), и я пытаюсь сделать изображение. Я бег на Raspbian, на Raspberry Pi 2. Я схватил какой-то код и обнажил его к минимуму и добиться определенного прогресса:Попытка рендеринга изображения из полутоновой камеры с OpenCV в C++. Помехи после нескольких кадров
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main(int, char**)
{
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we succeeded
return -1;
bool rtn;
// rtn = cap.set(CV_CAP_PROP_FRAME_WIDTH , 752);
// cout << "set to 752:" << rtn << endl;
// rtn = cap.set(CV_CAP_PROP_FRAME_HEIGHT , 480);
// cout << "set to 480:" << rtn << endl;
int count = 1;
Mat edges;
namedWindow("edges",1);
for(;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
cout << "cols:" <<frame.cols << endl;
cout << "rows:" << frame.rows << endl;
cout << "count:" << count++ << endl;
cout << "Channel Count:"<< frame.channels() << endl;
// cvtColor(frame, edges, CV_BGR2GRAY);
imshow("edges", edges);
if(waitKey(30) >= 0) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}.
Теперь я получаю изображение в оттенках серого, но она работает только для некоторых (2-4, он меняется) кадров, а затем зависает. Интересно, что если вы подождете достаточно долго, иногда он сканирует еще несколько кадров после сообщений «select timeout».
Я попытался запустить следующее перед запуском приложения, но это не похоже, чтобы помочь:
rmmod uvcvideo
modprobe uvcvideo nodrop=1 timeout=5000
Кроме того, даже если я указываю разрешение камеры в качестве 720x480 (согласно спецификации камеры), он сообщает размер рамки - 640x480.
Кажется, что, когда я беру следующий код из:
cvtColor(frame, edges, CV_BGR2GRAY);
Это работает, но это не черно-белое изображение, он зеленый. Обратите внимание, что я прокомментировал установку ширины и высоты рамки.
Почему вы раскалываете матрицу с одним каналом (вы сказали, что выход камеры имеет оттенки серого)? – Miki
Я пробовал использовать изображение как захваченное, но оно зеленое. – jordanthompson
Если это оттенки серого, он может быть зеленым: D вы, вероятно, просто не указали это неправильно – Miki