資料介紹
方案介紹
一.概覽
? 本人雖然是電子信息技術專業出身,在畢業后從事的是偏軟件的工作,大多數是PC軟件的開發,但一直以來,閑暇時間會利用STM32做些小的作品。對于RT-Thread這國內的物聯網操作系統,其實早有耳聞,期間也參加過深圳的一次RT-Thread線下交流活動,所以對于RT-Thread是有所了解而未實際應用的程度。
借著此次RT-Thread大賽的機會,我想將PC的一些圖像處理和圖像識別算法放到art-pi試跑一下看看效果如何,所以本次參賽將會使用art-pi獲取OV7670的圖像來做像處理和圖像識別。
二.開發環境
硬件:PC、ART-PI、OV7670、RGB_LCD
RT-Thread版本:rt-thread4 .0.3,art-pi adk 1.1.0
開發工具及版本:立創EDA,RT-Studio,SecureCRT
三.RT-Thread使用情況概述
線程:創建圖像處理線程用于通過DCMI獲取OV7670的圖像,圖像處理后完顯示在LCD上
信號量:用于DCMI圖像獲取,當捕捉完一幀圖像后,釋放信號量給圖像處理線程。
驅動:使用了drv_dcmi驅動并參考drv_ov2640移植drv_ov7670驅動
通過攝像頭采集圖像進行圖像識別,然后將結果顯示在LCD屏幕上。
五.硬件框架
本次的硬件核心由ART-PI、OV7670、LCD三部分組成:
ART-PI:stm32H750作為控制核心部分,采集圖像源數據、處理圖像源生成處理結果、將處理結果送到LCD顯示
OV7670:作為圖像源,提供320*240的RGB565圖像
LCD:實時顯示圖像源圖像和顯示處理結果
六.軟件流程圖
1.?? ?硬件初始化:時鐘、I2C、DCMI、SDRAM、LTDC
2.?? ?進入圖像處理線程,啟動拍照并等待拍照完成信號量
3.?? ?完成拍照釋放拍照完成信號量
4.?? ?得到圖像后,進行圖像處理與圖像識別
5.?? ?將圖像識別結果在LCD上顯示
6.?? ?回到步驟2
七.圖像識別功能介紹
通過DCMI驅動獲取OV7670的分辨率為320*240的RGB565原始圖像。RGB565每個像素使用用下圖的方式存儲,每個像素占用2個字節。所以每幀320*240的圖像所需內存為320*240*2=153600字節。
?
實際上,我們在這次項目中并不需要使用到彩色特征,所以先將RGB565轉換為灰色度。灰度圖其實就是每個像素占用一字節,用0-255值來形容一個像素的灰度值。因此320*240所占用的內存為76800字節。
RGB565轉灰度圖公式如下:?Gray = R*0.299 + G*0.587 + B*0.114
提取的灰度圖后,我們還需要再進行一次二值化處理,因此設定一個閾值,當灰色像素大于這個閾值我們將它改為255,低于這個值變成0。這樣就得到一幀只有0和225值的圖像。
得到二值化圖像后,我們便可以尋找要識別物體了。在此使用九宮格的方式提取連通分量,原理其實很簡單,就是在九宮格里尋找連在一起的像素,如果能找到便將該像素便將該像素的坐標(位于X行,y列)寫入到鏈表里。如此循環,直到找完所有像素。
完成連通分量的提取后便是特征提取了,我們還是采用九宮格分割法,將取得的圖像平均分割為9個區域,再計算9個區域中值為255像素的個數。通過這一步算法,我們得到了9組特征數據。
本次用了兩種特征提取方式:
1.?通過水平與垂直方向的穿越數找出部分數字
以數字0和7為例,在1/2寬度處,0和7穩定的得到垂直穿越數是2.而在1/2高度,0的水平穿越數是2,7的水平穿越數是1.
?
2.?在圖像的水平和垂直的中間切分成四塊,根據四個部分不同像素比例找出其他數字。以2和3為例 ,在右下角部分,3的每一行都會有像素點,而2會缺幾行。因此2的像素更少從而區分2和3。
?
最終檢測效果如下圖:
八.比賽感悟? ? ? ?
? ? ? ?雖然標題是比賽感悟,實際上比賽并不是我的目的。RT-Thread我知道它更久了,但是一直沒有去更進一步使用RT-Thread。這次比賽讓我深入了解了RT-Thread的生態系統,給我的感覺真的太驚喜了。RT-Thread平臺擁有豐富的組件,完善的各種外設驅動,通過官方的RT-Studio基本上做到入手即用了。
???????當時拿到ART-PI,通過RT-Thread SETTING進行勾選,再使用CubeMX選擇外設,生成引腳初始化代碼后。我本次項目的軟件基本平臺已經完成了,我只需要專注于我的應用層開發便可以了,這真的是太便利了。
? ? ? ?通過本次比賽,讓我對RT-Thread獲得相當大的好感,我想未來硬件項目當中,我會毫不猶豫的選擇RT-Thread代替其他實時操作系統。
- ART-PI重力感應無線智能小車第一彈——ART-PI擴展板設計
- 【RT-Thread作品秀】基于ART-PI的數字圖像處理與識別
- 【技術三千問】之《玩轉ART-Pi》,看這篇就夠了!
- 【STM32H750】玩轉ART-Pi(一)——使用STM32CUBMX生成TouchGFX工程
- 數字圖像處理的學習教程免費下載 32次下載
- 進行數字圖像處理與識別系統的開發教程免費下載 6次下載
- 數字圖像處理的經典復習資料免費下載 17次下載
- 基于數字圖像處理的輸電線路狀態智能識別技術_金華 3次下載
- 數字圖像處理與Matlab 0次下載
- 數字圖像處理技術__PPT - 復件 0次下載
- 數字圖像處理試題集 3次下載
- 數字圖像處理實驗報告 0次下載
- 基于Blackfin 561的數字圖像的成像處理
- 數字圖像處理在指針式指示表讀數識別中的應用
- MATLAB在數字圖像處理中的應用
- 在 ART-Pi Smart 體驗 RT-Thread Smart v5.1.0 342次閱讀
- 數字圖像處理的基礎知識 1008次閱讀
- 數字圖像數據量的計算 4958次閱讀
- ART-Pi Smart開發板開箱體驗 1075次閱讀
- ART-PI Smart開發板介紹與開發環境的建立 1524次閱讀
- 基于計算機的圖像處理方法 4638次閱讀
- 探析數字圖像處理常用的方法 5089次閱讀
- MATLAB對數字圖像處理有各種函數支持 5149次閱讀
- 指紋識別圖像獲取的主要技術及原理解析 5563次閱讀
- 指紋識別,圖像獲取技術四大類型原理介紹 3546次閱讀
- 數字圖像處理平臺系統方案詳解 4590次閱讀
- 一文看懂數字圖像的取樣和量化 1.9w次閱讀
- 指紋識別中的圖像處理研究--指紋圖像的特性分析(一) 5832次閱讀
- 基于多DSP與FPGA的實時圖像處理系統設計 4178次閱讀
- 數字圖像處理及應用主要有哪些 3.3w次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多