大佬教程收集整理的这篇文章主要介绍了c – 使用Qt显示来自OpenCV的网络摄像头流,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
int main(int,char**) { VideoCapture cap(0); Mat edges; namedWindow("webcam",1); while (true) { Mat frame; cap >> frame; imshow("webcam",framE); if (waitKey(30) >= 0) break; } return 0; }
现在我想要的是在QT的Widget中显示来自OpenCV的QImage中的图像
这是从cv :: Mat到QImage的转换
QImage Mat2QImage(cv::Mat const& srC) { cv::Mat temp; cvtColor(src,temp,Cv_bGR2RGB); QImage dest((const uchar *)temp.data,temp.cols,temp.rows,temp.step,QImage::Format_RGB888); dest.bits(); // of QImage::QImage ( const uchar * data,int width,int height,Format format ) return dest; }
int main(int argc,char *argv[]) { QApplication a(argc,argv); QImage myImage; myImage.load("a.png"); QLabel myLabel; myLabel.setPixmap(QPixmap::fromImage(myImagE)); myLabel.show(); return a.exec(); }
我试图以这种方式组合它们,但没有运气
int main(int argc,argv); VideoCapture cap(0); QImage myImage; QLabel myLabel; while (true) { Mat frame; cap >> frame; // get a new frame from camera myImage = Mat2QImage(framE); myLabel.setPixmap(QPixmap::fromImage(myImagE)); } myLabel.show(); return a.exec();
class Window : public QMainWindow { Q_OBjeCT QTimer _timer; private slots: void on_timeout() { // put your opencv code in it } public: Window() : QMainWindow(),_timer(this) { connect(&_timer,SIGNAL(timeout()),this,SLOT(on_timeout())); // populate your window with images,labels,etc. here _timer.start(10 /*call the timer every 10 ms*/); } };
int main(int argc,argv); Window win; win.show(); return a.exec(); }
以上是大佬教程为你收集整理的c – 使用Qt显示来自OpenCV的网络摄像头流全部内容,希望文章能够帮你解决c – 使用Qt显示来自OpenCV的网络摄像头流所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。