《OpenCV 3 和Qt5計算機視覺應用開發》讀后感


0

書本封面

鏈接

1.綜述

1.1前言

注意到這本書完全是因為書名,因為和自己的課題方向很適合,所以經圖書館薦購,假期借回家看了。疫情的原因,荒唐了許久,最近才翻出來整個的過了一遍,書是圖書館的還要還,所以趁着熱乎勁把感受記錄下來。

1.2書籍簡介

書如其名,這本書的主要內容就是利用Qt配合OpenCV進行計算機的視覺應用的開發,書的作者是個伊朗人,中譯版2019出版。從書的內容而言,是更關注實際操作的,書本不算厚,又有不少插圖,自我感覺是比較適合入門者對Qt和OpenCV的結合有一個初步的了解的,但是對於進階者可能就顯得淺了些。書本的優點在於操作性強並且配套的有源碼,尤其是前面幾章,能很好的引領小白完成入門。缺點呢,兩部分,一是可能由於是譯書,語言感覺不是特別的精准;另外就是,后面有一些章節可能受限於篇幅,講解不夠豐富,列出許多函數說明然后舉個簡單的例子就結束了。但是總體來說,這本書還是有價值的,尤其是對於想入門OpenCV+Qt的小伙伴。書本使用的是OpenCV3和Qt5,也算是較新的版本了。

2.書本結構

2.1書本目錄

3.一些小補丁

3.1安裝環境問題

這本書里用的Qt5.9和OpenCV3.3.0,但是我實際的環境是Qt5.10.1和OpenCV3.4.8,沒啥影響,是能正常工作的。另外有一個就是,書里面的OpenCV是自己下載源碼然后Cmake構建的,我當時Cmake有些問題,自己下載了opencv的可執行文件,安裝解壓就是了,其他和書里一樣。

3.2讀取圖片的格式選擇

在書里P51頁,也即第二章Hello_Qt_Opencv工程inputPushButton的pressed槽函數。
void MainWindow::on_inputPushButton_pressed() { QString fileName = QFileDialog::getOpenFileName(this, "Open Input Image", QDir::currentPath(), "Images (*.jpg *.png *.bmp)"); if(QFile::exists(fileName)) { ui->inputLineEdit->setText(fileName); } }

在這里"Images (.jpg .png .bmp)"處,照書中的寫法我運行時無法讀取圖片,修改為"Images (;;.jpg ;;.png ;;.bmp)"后可以運行。應該是和QFileDialog::getOpenFileName函數的性質有關,因為自己本身就是入門,我沒細查這個函數。

3.3Qt多語言模塊

在做書中第三章的多語言支持部分,需要利用Qt的語言翻譯工具,但是我遇到了與書中類似的問題,但是書中指示使用VS2015的命令行工具也沒法解決。百度之后試了幾下,稀里糊塗就好了,但我不太確定是哪個操作起的作用。依稀記得有環境變量的修改以及給與Qt Creator 管理員權限。

3.4Qt 菜單欄的設計

在同樣第三章,P80有涉及對菜單欄的新建與分欄,以及添加槽函數。但是書中這一塊的描述不是很清楚,雖然操作上不難,但是對於小白可能就卡住了,我是又從別的資料里對照的學了下。說來也簡單,在菜單欄的分欄時只需要使用回車鍵就可以分欄,同時菜單欄的槽函數無法右鍵添加,要使用設計界面下方的Action Editor欄。

3.5Qt使用拖放事件拖動圖片進入應用窗口

這一塊也是我很莫名其妙的一個地方,書中第四章P118,設計了一個圖片瀏覽器可以拖動圖片文件進入窗口然后播放圖片。但是吊詭的是,完成程序運行后顯示是無法拖放圖片進入窗口的,多次檢查程序沒有問題。后來發現,如果直接打開構建文件夾的可執行文件就是一切正常的。只有在QT中運行無法拖放文件,令人費解。

3.6還有一個小小的筆誤

在P118頁,應該是QFileInfo file(event->mimeData()->urls().at(0).toLocalFile());
而不是QFileInfo file(event->mimeData()->urls().at(0).toLocal


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM