女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于RK3576開發板的字庫引擎

ljx2016 ? 來源:ljx2016 ? 作者:ljx2016 ? 2025-05-12 11:04 ? 次閱讀

1. 字庫引擎簡介

在某些應用場景中,會有在圖像中打上水印的情況,特別是要寫上【中文水印】,而opencv又無法做到支持中文。針對這種情況,EASY EAI api封裝了一個字庫引擎,專門用于給圖像寫上文字。

例如圖中的綠色文字:

2. 快速上手

如果您初次閱讀此文檔,請閱讀:《入門指南/源碼管理及編程介紹/源碼工程管理》,按需管理自己工程源碼(注:此文檔必看,并建議采用【遠程掛載管理】方式,否則有代碼丟失風險!!!)。

2.1 源碼工程下載

先在PC虛擬機定位到nfs服務目錄,再在目錄中創建存放源碼倉庫的管理目錄:

cd ~/nfsroot
mkdir GitHub
cd GitHub

再通過git工具,在管理目錄內克隆遠程倉庫(需要設備能對外網進行訪問)

git clone https://github.com/EASY-EAI/EASY-EAI-Toolkit-3576.git
wKgZPGghaqCAMGT6AAFHkLhl81w594.png

注:

* 此處可能會因網絡原因造成卡頓,請耐心等待。

* 如果實在要在gitHub網頁上下載,也要把整個倉庫下載下來,不能單獨下載本實例對應的目錄。

2.2 開發環境搭建

通過adb shell進入板卡開發環境,如下圖所示。

wKgZO2ghaqCAEKE2AAC7JgRVz1M342.png

通過以下命令,把nfs目錄掛載上nfs服務器。

mount -t nfs -o nolock : /home/orin-nano/Desktop/nfs/
wKgZPGghaqCAUeVbAAD6_a7KK6A633.png

2.3 例程編譯

然后定位到nfs的掛載目錄,再在目錄中創建存放源碼倉庫的管理目錄:

cd /home/orin-nano/Desktop/nfs/GitHub

進入到對應的例程目錄執行編譯操作,具體命令如下所示:

cd EASY-EAI-Toolkit-3576/Demos/common-font_engine/
./build.sh
wKgZO2ghaqCATymHAAHekQCm3SE527.png

2.4 例程運行及效果

進入Release目錄執行下方命令,運行示例程序:

cd ./Release
./test-font_engine

執行效果如下所示。

wKgZPGghaqGACrTiAAB7x0jTn1c543.png

就可看到在原圖基礎上,打上了【中文水印】。

wKgZO2ghaqGAAXWxAAEDI9fGNY4899.png

API的詳細說明,以及API的調用(本例程源碼),詳細信息見下方說明。

3. 字符串操作API說明

3.1 引用方式

EASY EAI api庫位于本倉庫的easyeai-api目錄中。為方便客戶在本地工程中直接調用我們的EASY EAI api庫,此處列出工程中需要鏈接的庫以及頭文件等,方便用戶直接添加。

描述 CMake寫法 Makefile寫法
api.cmake ${common_root}/font_engine/api.cmake
頭文件目錄 ${FONT_ENGINE_INCLUDE_DIRS} -I ../../easyeai-api/common/font_engine
源文件目錄 ${FONT_ENGINE_SOURCE_DIRS} ../../easyeai-api/common/font_engine
庫文件目錄
庫鏈接參數 ${FONT_ENGINE_LIBS}

API源代碼路徑為EASY-EAI-Toolkit-3576/easyeai-api/common/font_engine/。用戶可通過源代碼了解接口實現,甚至可對源碼進行修改。

3.2 創建全局字體對象

函數原型如下所示。

int32_t global_font_create(const char *fontLib, const char *codec);

具體介紹如下所示。

函數名:global_font_create()
頭文件 easyeai-api/common/font_engine/font_engine.h
輸入參數 fontLib:待載入的字庫文件,如"./simhei.ttf"
codec:需要寫入到圖像中文字的字符編碼格式,如utf-8或者gbk等
返回值 創建成功:0
創建失敗:-1
注意事項 如果本進程已經某處創建了全局字符對象,則再次調用的返回值必然是-1

3.3 給全局字體對象按指定格式進行字符解碼

函數原型如下所示。

int32_t global_font_set_textCodec(const char *codec);

具體介紹如下所示。

函數名:global_font_set_textCodec()
頭文件 easyeai-api/common/font_engine/font_engine.h
輸入參數 codec:需要寫入到圖像中文字的字符編碼格式,如utf-8或者gbk等
返回值 設置成功:0
設置失敗:-1
注意事項 需要全局字體對象已經被創建。

3.4 設置全局字體對象對象的字號

函數原型如下所示。

int32_t global_font_set_fontSize(uint32_t fontSize);

具體介紹如下所示。

函數名:global_font_set_fontSize()
頭文件 easyeai-api/common/font_engine/font_engine.h
輸入參數 fontSize:待設定的目標字號
返回值 設置成功:0
設置失敗:-1
注意事項 需要全局字體對象已經被創建。

3.5 向圖像寫入指定字符

函數原型如下所示。

int32_t putText(uint8_t *imgData, uint32_t imgWidth, uint32_t imgHeight, const char *text, uint32_t posX, uint32_t posY, FontColor color);

具體介紹如下所示。

函數名:putText()
頭文件 easyeai-api/common/font_engine/font_engine.h
輸入參數 imgData:圖像數據首地址,數據格式為BGR888
imgWidth:圖像分辨率尺寸,寬度。
imgHeight:圖像分辨率尺寸,高度。
text:待寫入的字符。
posX:待寫入字符的左上角相對于圖像的x坐標。圖像的坐標原點也位于左上角。
posY:待寫入字符的左上角相對于圖像的y坐標。圖像的坐標原點也位于左上角。
color:字體的色值,結構體在下方說明。
返回值 寫入成功:0
寫入失敗:-1
注意事項 需要全局字體對象已經被創建。

FontColor結構體:

typedef struct {
	uint8_t Alpha;	//透明度通道色值
	uint8_t Red;	//紅色通道色值
	uint8_t Green;	//綠色通道色值
	uint8_t Bule;	//藍色通道色值
}FontColor;

3.6 銷毀全局字體對象

函數原型如下所示。

int32_t global_font_destory();

具體介紹如下所示。

函數名:global_font_destory()
頭文件 easyeai-api/common/font_engine/font_engine.h
輸入參數
返回值 銷毀成功:0
銷毀失敗:-1
注意事項 需要全局字體對象已經被創建。

4. API測試案例

示例代碼路徑為EASY-EAI-Toolkit-3576/Demos/common-font_engine/test-font_engine.cpp。

以下為各個API的實際用例。

int main(void)
{
	// 初始化字體透明度和顏色
	FontColor color = {200, 135, 189, 67};    // {A, R, G, B};
	
	// 創建全局字體
	global_font_create("./simhei.ttf", CODE_UTF8);
	
	// 讀取底圖
	cv::Mat img = cv::imread("./testPic.png");
	
	// 寫入文字
	global_font_set_fontSize(80);
	putText(img.data, img.cols, img.rows, "歡迎使用", 210, 940, color);
	global_font_set_fontSize(40);
	putText(img.data, img.cols, img.rows, "歡迎使用", 290, 1020, color);
	
	// 保存寫入文字后的底圖
	cv::imwrite("./res.jpg", img);
	
	// 銷毀全局字體
	global_font_destory();
	
	return 0;
}

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開發板
    +關注

    關注

    25

    文章

    5471

    瀏覽量

    101708
  • rk3576
    +關注

    關注

    1

    文章

    142

    瀏覽量

    527
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于RK3576開發板的WDT看門狗使用說明

    RK3576開發板的WDT使用說明
    的頭像 發表于 05-06 17:15 ?438次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的WDT看門狗使用說明

    基于RK3576開發板的PCIE固態硬盤使用說明

    RK3576開發板的PICE固態硬盤使用方法
    的頭像 發表于 05-06 17:33 ?1149次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的PCIE固態硬盤使用說明

    基于RK3576開發板的TF卡槽使用說明

    RK3576開發板使用TF卡槽
    的頭像 發表于 05-07 09:24 ?528次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的TF卡槽使用說明

    基于RK3576開發板的PWN使用說明

    RK3576開發板使用PWN教程及Demo
    的頭像 發表于 05-07 14:07 ?1133次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的PWN使用說明

    基于RK3576開發板的RTC使用說明

    文章主要展示RK3576開發板的RTC信息和快速上手例程
    的頭像 發表于 05-07 15:04 ?571次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的RTC使用說明

    基于RK3576開發板的人臉識別算法

    RK3576開發板展示人臉識別算法例程和API說明
    的頭像 發表于 05-07 16:48 ?1340次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的人臉識別算法

    新品體驗 | RK3576開發板

    RK3399、RK3566、RK3568、RK3588、RK3576等型號的核心與評估
    的頭像 發表于 11-01 08:08 ?1690次閱讀
    新品體驗 | <b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>

    米爾RK3576開發板特惠活動!

    近日,米爾電子發布基于瑞芯微RK3576核心開發板RK3576作為國產熱門處理器,其高性能數據處理能力、領先的AI智能分析、強大的擴展性與兼容性受到廣大
    的頭像 發表于 11-12 01:00 ?693次閱讀
    米爾<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>特惠活動!

    敬請期待 | 迅為RK3576開發板即將發布

    敬請期待 | 迅為RK3576開發板即將發布
    的頭像 發表于 11-22 15:13 ?510次閱讀
    敬請期待 | 迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>即將發布

    迅為RK3576開發板核心與底板接口硬件介紹

    迅為RK3576開發板核心與底板接口硬件介紹
    的頭像 發表于 01-14 15:15 ?1218次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>核心<b class='flag-5'>板</b>與底板接口硬件介紹

    迅為RK3576開發板Android?多屏顯示

    迅為RK3576開發板Android?多屏顯示
    的頭像 發表于 01-16 16:58 ?777次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>Android?多屏顯示

    RK3576開發板技術分享 | Weston 配置技巧:定制你的桌面體驗!

    RK3576開發板技術分享 | Weston 配置技巧:定制你的桌面體驗!
    的頭像 發表于 03-07 10:17 ?454次閱讀
    <b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>技術分享 | Weston 配置技巧:定制你的桌面體驗!

    基于RK3576開發板的MIPI-DSI使用

    MIPI DSI接口是由MIPI聯盟下的Display工作組指定的DSI(Display Serial Interface)的接口標準。rk3576開發板使用mipi-dsi教程
    的頭像 發表于 05-06 16:11 ?221次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的MIPI-DSI使用

    基于RK3576開發板的揚聲器和耳機使用說明

    RK3576開發板的揚聲器和耳機使用說明
    的頭像 發表于 05-06 16:36 ?179次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的揚聲器和耳機使用說明

    基于RK3576開發板的HDMI-OUT使用說明

    RK3576開發板的HDMI-OUT使用說明
    的頭像 發表于 05-06 16:48 ?152次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的HDMI-OUT使用說明