Change directory structure
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
CC=gcc
|
||||
CXX=g++
|
||||
SRCS=capture.cc
|
||||
OBJS=$(subst .cc,.o,$(SRCS))
|
||||
|
||||
all: $(SRCS)
|
||||
$(CXX) -std=c++11 -Wall -I/usr/lib/opencv -I/usr/include/opencv4 $< -L/usr/lib -lopencv_core -lopencv_videoio -lopencv_imgcodecs -o capture
|
||||
|
||||
clean:
|
||||
rm -f $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f capture
|
||||
@@ -0,0 +1,58 @@
|
||||
#include <cstdio>
|
||||
#include <opencv2/opencv.hpp>
|
||||
|
||||
using namespace std;
|
||||
using namespace cv;
|
||||
|
||||
string video_pipeline(int capture_width, int capture_height, int framerate,
|
||||
int flip_method) {
|
||||
return "nvarguscamerasrc ! "
|
||||
"video/x-raw(memory:NVMM),width=(int)" +
|
||||
to_string(capture_width) + ",height=(int)" +
|
||||
to_string(capture_height) + ",framerate=(fraction)" +
|
||||
to_string(framerate) +
|
||||
"/1 ! "
|
||||
"nvvidconv flip-method=" +
|
||||
to_string(flip_method) +
|
||||
" ! "
|
||||
"video/x-raw,format=(string)BGRx ! "
|
||||
"videoconvert ! "
|
||||
"video/x-raw,format=(string)BGR,width=(int)3264,height=(int)2464 ! "
|
||||
"appsink";
|
||||
}
|
||||
|
||||
int main() {
|
||||
int capture_width = 3264;
|
||||
int capture_height = 2464;
|
||||
int framerate = 21;
|
||||
int flip_method = 2;
|
||||
|
||||
string pipeline =
|
||||
video_pipeline(capture_width, capture_height, framerate, flip_method);
|
||||
cout << "Using pipeline: \n\t" << pipeline << endl;
|
||||
|
||||
VideoCapture cap(pipeline, CAP_GSTREAMER);
|
||||
if (!cap.isOpened()) {
|
||||
cout << "Failed to open camera." << endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
Mat img;
|
||||
|
||||
// Take 21 images (1s) to get automatic ISO
|
||||
for (int i = 0; i < 21; i++) {
|
||||
cap.read(img);
|
||||
}
|
||||
|
||||
cap.read(img);
|
||||
|
||||
try {
|
||||
imwrite("current.jpg", img);
|
||||
} catch (const Exception &ex) {
|
||||
fprintf(stderr, "Exception converting image to JPG format: %s\n",
|
||||
ex.what());
|
||||
}
|
||||
|
||||
cap.release();
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user