1.QCameraViewfinder
QCamera的取景器,用于显示摄像头抓到的数据,前面所使用的就是这个。但是现在遇到一个需求,比如在一些场合中,需要在显示图像上打水印,OSD等信息,比如在人脸检测场景中一帮会要求识别画框,这里这里没有提供hook方式,不行,probe是并行的,并不会影响到显示这里。看有些博客上说继承一下QCameraViewfinder然后覆写paintevent
void QCameraViewfinderPri::paintEvent(QPaintEvent *e)
{
QCameraViewfinder::paintEvent (e);
QPainter painter(this);
painter.setPen(Qt::red);
painter.drawRect(50, 50, 100, 100);
}
试了一下,并没有效果。最后发现说可以自己实现Viewfinder,在这样就可以控制显示了。
2.自定义viewfinder
继承的说明,网络上比较多,就不详细说明了。这里没有给显示策略,只是做了一次捕获操作。在继承过程中必须要实现纯虚函数present 和supportedPixelFormats。
class QSmartViewFinder : public QAbstractVideoSurface
{
Q_OBJECT
public:
QSmartViewFinder(QObject *parent = NULL);
~QSmartViewFinder();
signals:
void showFrame(QVideoFrame image);
protected:
QList<QVideoFram
2085




被折叠的 条评论
为什么被折叠?



