实现功能:提取rgb波段并通过h264编码;
This commit is contained in:
@ -11,6 +11,40 @@
|
||||
#include <QObject>
|
||||
#include <QImage>
|
||||
#include <opencv2/opencv.hpp>//包含了所有东西,编译很慢
|
||||
#include "opencv2/imgproc/types_c.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include <libavcodec/avcodec.h>
|
||||
#include <libavutil/opt.h>
|
||||
#include "libavutil/pixfmt.h"
|
||||
#include "libswscale/swscale.h"
|
||||
#include <libavutil/imgutils.h>
|
||||
#include <libavutil/avutil.h>
|
||||
#include "libavdevice/avdevice.h"
|
||||
}
|
||||
|
||||
class Encode
|
||||
{
|
||||
public:
|
||||
Encode();
|
||||
void initffmpeg(int width, int height);
|
||||
|
||||
FILE *fp;
|
||||
AVCodecContext *avcodeccontext;
|
||||
void savedata(AVFrame *frame);
|
||||
void encode(AVCodecContext *enc_ctx, AVFrame *frame, AVPacket *pkt, FILE *outfile);
|
||||
AVPacket m_avpacket;
|
||||
AVFrame *inpic;
|
||||
AVFrame *outpic;
|
||||
|
||||
bool isinit;
|
||||
int index1;
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
|
||||
|
||||
using namespace cv;
|
||||
class rgbImage :public QObject
|
||||
@ -27,9 +61,11 @@ public:
|
||||
void FillFocusGrayQImage(unsigned short * datacube);
|
||||
|
||||
void FillOnerowofRgbImage(cv::Mat * matRgbImage, int rowNumber, unsigned short *datacube);
|
||||
QImage Mat2QImage(cv::Mat cvImg);//https://www.cnblogs.com/annt/p/ant003.html
|
||||
|
||||
QImage *m_QRgbImage;
|
||||
cv::Mat *m_matRgbImage;
|
||||
QImage m_Qphoto;
|
||||
|
||||
QImage *m_qimageFocusGrayImage;
|
||||
cv::Mat *m_matFocusGrayImage;//用于调焦时,显示一帧的灰度图
|
||||
@ -61,6 +97,8 @@ private:
|
||||
|
||||
int m_iFrameNumber;//
|
||||
|
||||
void initffmpeg();
|
||||
|
||||
public slots:
|
||||
|
||||
signals :
|
||||
|
@ -42,6 +42,7 @@
|
||||
#include "MemoryPool.h"
|
||||
#include <queue>
|
||||
#include <QMutex>
|
||||
#include <QUdpSocket>
|
||||
|
||||
#include "rgbImage.h"
|
||||
|
||||
@ -152,6 +153,8 @@ public:
|
||||
int getMaxValueOfOneFrame(unsigned short * data, int numberOfPixel);
|
||||
|
||||
int getImagerState() const;
|
||||
|
||||
Encode ffmpegEncode;
|
||||
private:
|
||||
//0-61:ximea官方错误代码;99:发生的ximea官方错误代码,没有处理;100:未打开;101:打开;102:设置帧率;103:自动曝光;104:正在采集;
|
||||
int m_iImagerState;
|
||||
|
Reference in New Issue
Block a user