基於Imx6ull的車牌識別專案

2021-10-10 01:33:45 字數 2862 閱讀 2640

前言

這個專案是自己用來練手學linux的專案,跟著訊為電子出的教程做的乙個車牌識別專案。

硬體用的野火的開發板+野火的五寸觸控螢幕+免驅的攝像頭,系統用的野火的debian系統,上位機是用qt寫的。

drawn by:67373upup

在ubuntu下配置環境

1.1:編譯openssl

cd openssl-1.0.2f/

setarch i386 ./config no-asm shared --prefix=/usr/local/openssl/

cc= arm-linux-gnueabihf-gcc

ar= arm-linux-gnueabihf-ar $(arflags) r

ranlib= arm-linux-gnueabihf-ranlib

nm= arm-linux-gnueabihf-nm

make

sudo make install

1.2:編譯curl
./configure --prefix=/usr/local/curl/ --host=arm-linux-gnueabihf cc=arm-linux-gnueabihf-gcc cxx=arm-linux-gnueabihf-g++ --with-ssl=/usr/local/openssl

make

sudo make install

1.3:編譯jsoncpp
mkdir arm_jsoncpp

cp -r include/ arm_jsoncpp/

cp src/lib_json/* arm_jsoncpp/

arm-linux-gnueabihf-g++ -c *.cpp -i./include -fpic

mkdir lib

ar cr ./lib/libjsoncpp.a *.o

編譯動態庫

arm-linux-gnueabihf-g++ -shared -fpic *.cpp -i./include -o ./lib/libjsoncpp.so
經測試jsoncpp的動態庫在qt裡面用不成,可以直接將庫放在開發板內,然後直接用qt引用就行了。

參考資料:

將編譯好的庫拷貝到開發板

root@npi:/mnt# cp -r curl /usr/local/

root@npi:/mnt# cp -r openssl /usr/local/

root@npi:/mnt# cp -r curl/lib/* /lib/

root@npi:/mnt# cp -r openssl/lib/* /lib/

配置開發板的環境變數並更新

開啟並編輯bashrc

vi .bashrc
在文末新增如下內容

export path=$path:/usr/local/openssl/bin

export path=$path:/usr/local/curl/bin

編輯完成以後 更新一下,然後檢視是否ok

source ~/.bashrc

echo $path

qt編寫
headers = \

1.1:車牌識別函式

//車牌識別函式

std::string getplatenumber(std::string picturepath)

else

}

void camera::processcapturedimage(int requestid, const qimage& img)

效果展示

參考資料

json新增靜態庫

阿正的部落格

IMX6ULL啟動流程

假設板子設定為sd tf卡啟動,boot rom程式會做什麼?把程式從sd tf卡讀出來,執行。從 讀?從sd tf卡讀,這需要先初始化sd tf卡 根據efuse或gpio的設定初始化sd tf卡。讀到 去?讀到記憶體即ddr去,這需要先初始化ddr。除了初始化啟動裝置 初始化ddr,還需要初始化...

IMX6ULL學習筆記(一)

imx6ull裸機開發學習 以下內容是我在學習正點原子imx6ull開發板alpha中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊。bin檔案前面要新增頭部 ivt boot data dcd資料 由官方手冊可知要燒寫到sd卡中的load.imx檔案在sd卡中的起始位址是0x400,也就是1...

IMX6ULL學習筆記(三)

imx6ull裸機開發學習 以下內容是我在學習正點原子imx6ull開發板alpha中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊。鏈結指令碼的例子 sections rodata align 4 data align 4 bss start bss align 4 bss end bss ...