<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                因為做項目要用這,也是白手起家。今天抽空把心得寫下,希望大家多頂哈!最初使用v4l2,但發現工作量太大了,而且自己寫的代碼不如opencv這么專業! 參照http://blog.csdn.net/hsl17/article/details/6925876,及http://www.linuxidc.com/Linux/2011-11/47347.htm等幾篇文章,最終將其調試成功。 ?第一篇文章http://blog.csdn.net/hsl17/article/details/6925876已經說的很詳細了,但有個地方沒有說清。我將其補全: MyWidget即是顯示視頻的widget,其頭文件如下: ![](image/d41d8cd98f00b204e9800998ecf8427e.jpg) ![](https://box.kancloud.cn/2016-01-19_569e21ab83431.jpg) 對應的構造函數為: 1. ????capture?=?cvCaptureFromCAM(0);?? 1. ????cvSetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH,320);?? 1. ????cvSetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT,240);?? 1. ????if(capture)?? 1. ????{?? 1. ????????QMessageBox::information(this,"Information","successful!");?? 1. ????????if?(capture)?? 1. ????????{?? 1. ????????????frame?=?cvQueryFrame(capture);?? 1. ????????????if?(frame)?? 1. ????????????????this->resize(frame->width,frame->height);?? 1. ????????????qImg?=?new?QImage(QSize(frame->width,frame->height),QImage::Format_RGB888);?? 1. ????????????iplImg?=?cvCreateImageHeader(cvSize(frame->width,frame->height),8,3);?? 1. ????????????iplImg->imageData?=?(char*)qImg->bits();?? 1. ????????????timer?=?new?QTimer(this);?? 1. ????????????timer->setInterval(30);?? 1. ????????????connect(timer,SIGNAL(timeout()),this,SLOT(nextFrame()));?? 1. ????????????timer->start();?? 1. ????????????writer?=?cvCreateVideoWriter("out.avi",CV_FOURCC('D',?'I',?'V',?'X'),10,?? 1. ?????????????????????????????????????????cvSize(frame->width,frame->height),1);?? 1. ????????????isCamera?=?true;?? 1. ????????}?? 1. ????}?? 1. ????else?? 1. ????{?? 1. ????????QMessageBox::information(this,"Information","Sorry,fail!");?? 1. ????????isCamera?=?false;?? 1. ????}?? 1. 這里面有個問題,第一,程序無法運行,經檢查是 1. cvSetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH,320);?? 1. ????cvSetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT,240); ? 1. 1. 這兩句話的問題。查了一圈資料,貌似不支持。將其屏蔽!注釋掉,程序就能運行了! 1. 第二,變量isCamera應該申明成為全局變量。按照原博客里的申明方法根本不可運行。將其申明為:static bool ?isCamera = false;這句話放在頭文件的外面!!! 1. 其他部分參照下面程序即可! 1. void?MyWidget::paintEvent(QPaintEvent?*e)?? 1. {?? 1. ????QPainter?painter(this);?? 1. ????if(isCamera?==?true)?? 1. ????{?? 1. ????????painter.drawImage(QPoint(0,0),*qImg);?? 1. ????}?? 1. ????else?? 1. ????{?? 1. ?????????? 1. ????}?? 1. }?? 1. void?MyWidget::nextFrame()?? 1. {?? 1. ????frame?=?cvQueryFrame(capture);?? 1. ?? 1. ????if?(frame)?? 1. ????{?? 1. ????????if?(frame->origin?==?IPL_ORIGIN_TL)?? 1. ????????{?? 1. ????????????cvCopy(frame,iplImg,0);?? 1. ????????}?? 1. ????????else?? 1. ????????{?? 1. ????????????cvFlip(frame,iplImg,0);?? 1. ????????}?? 1. ????????cvCvtColor(iplImg,iplImg,CV_BGR2RGB);?? 1. ????????cvWriteFrame(writer,frame);?? 1. ????????this->update();?? 1. ????}?? 1. } ? 1. 疑問: 1. 第一,有時候運行程序會卡住,直接出不來圖像。在MyWidget的析構函數中增加cvReleaseImage(&frame)好了很多。另外定時器的間隔時間調40ms、50ms會好點。我的電腦內存是4G,當內存占用1300多M時,運行程序卡的幾率很大。重啟后卡的幾率就變小了。 不知道為什么?? 1. 第二,每次運行程序時,在顯示圖片之前會有警告。mmap:無效的參數 1. ?munmap:無效的參數 1. munmap;無效的參數 ?。。。。截圖: 1. ![](https://box.kancloud.cn/2016-02-18_56c5455e73c9f.jpg) 我查了很多資料貌似是內存申請的問題。我在其他網站下載了另外一個讀取攝像頭視頻的程序,也可以運行。程序構建和上述有點不同,但也是會出現這些警告。這些警告過后就能照常運行了。 我猜測這是第一幀圖片沒有正確申請內存的原因。解決辦法正在思考zhong. 也希望高人過來指點!!!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看