TI DSP C6657導(dǎo)入圖像數(shù)據(jù)進(jìn)行圖像處理

在嵌入式平臺DSP上進(jìn)行圖像處理全闷,首先要解決的問題是如何將PC端的圖像加載到DSP內(nèi)存中凿将。如果熟悉數(shù)字圖像處理,我們一般用Matlab,Python,opencv 直接imread("lena.jpg")就可以了,一行代碼搞定山涡。 可是到了DSP平臺,這樣簡單的imread()功能并沒有阐肤。


一抬闯、目的

1.將windows本地的圖像導(dǎo)入DSP的內(nèi)存中。

2.利用DSP6657的官方圖像處理庫——imagelib實(shí)現(xiàn)Sobel算子


二语婴、工具

1.TI DSP6657 EVM官方評估版

2.CCS8.1

3.C++ 編譯器描孟,這里采用Visual Studio2017

4.TI 6657 imagelib庫

DSP6657 EVM開發(fā)版

三、實(shí)驗(yàn)內(nèi)容

step1:

準(zhǔn)備一張圖像砰左,我采用lean.jpg, 512*512匿醒,單通道灰度圖像。


lena_gray.jpg

step2:

打開C++ IDE,編寫C++代碼缠导,將圖像數(shù)據(jù)保存到為DSP可以加載的.dat文件廉羔。
本人采用vs2017+opencv3.4.0。


vs2017.jpg
  • C++代碼:
#include <stdio.h>
#include <stdlib.h>
#include<iostream>
#include<opencv2\opencv.hpp>


using namespace std;
using namespace cv;

int main(void) {
    

    //------------將圖像文件生成.txt-------------------------
    string fileName = "F:\\lena\\lena_gray.jpg";
    Mat image = imread(fileName, 0);
    FILE* fp = fopen("F:\\lena\\lena_gray_512x512.dat", "wb");
    
    for (int i = 0; i < image.rows; i++) {
        for (int j = 0; j < image.cols; j++) {
            //寫入數(shù)據(jù)
            fprintf(fp, "%x\n", (int)image.at<uchar>(i, j));
        }
    }

    return 0;
}
  • python代碼
import cv2
import os
import argparse


def main():
    arg_parser = argparse.ArgumentParser()
    arg_parser.add_argument('image_path')
    arg_parser.add_argument('dsp_data_path')

    args = arg_parser.parse_args()
    image_path = args.image_path
    dsp_data_path = args.dsp_data_path

    assert os.path.isfile(image_path)

    dsp_file = open(dsp_data_path, 'w')

    image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
    # assert image is None
    print('-'*20)
    print('image name: {}\n image size: {} x {} \n'.format(image_path, image.shape[1], image.shape[0]))
    print('dsp format data defualt start addr: 0x80000000, you should change it later!')

    ans = input('Continue ? (Y/N)')
    if ans in ['yes', 'y', ' Y', 'YES', 'Yes']:
        # DSP DATAHEADER
        dsp_file.write('{} {} 0x{} {} {} {}\n'.format(1651, 9, 80000000, 0, hex(image.shape[0] * image.shape[1]), 10))
        for i in range(image.shape[0]):
            for j in range(image.shape[1]):
                pixel = image[i, j]
                dsp_file.write('{}\n'.format(hex(pixel)))

        dsp_file.close()
        print('Create dsp format data finish!')

    elif ans in ['no', 'N', ' n', 'NO', 'No']:
        pass
    else:
        print('You pressed error key!')


if __name__ == '__main__':
    main()

將圖像用opencv讀取酬核,C++生成的.dat文件


.dat文件.png

在生成的.dat文件第一行添加如下內(nèi)容:


.dat文件.png
.dat文件.png

Step3:

打開CCS8.1蜜另,配置環(huán)境适室。

ccs8.1.png

ccs.png

新建一個(gè)CCS工程

image.png

工程設(shè)置(如果要使用DDR3,需要加載gel文件)
.gel文件用于初始化DSP的參數(shù)举瑰,比如PLL鎖相環(huán)捣辆,DDR3初始化。

image.png

配置imagelib庫

imagelib庫.png

其實(shí)與vs2017配置opencv相似此迅,需要將imagelib庫的.h汽畴,.lib(實(shí)際是.ae66)靜態(tài)庫加載到工程的搜索路徑。

將.h文件加載到complier搜索路徑耸序。(點(diǎn)擊工程忍些,右鍵屬性)


image.png

將.lib/.ae66加載到linker鏈接器的路徑。


image.png

若路徑正確坎怪,工程將出現(xiàn)以下內(nèi)容:


image.png

Step4:編寫DSP端的代碼

#include<stdio.h>
/*
 * DSP導(dǎo)入圖像數(shù)據(jù)
 * 參考:https://blog.csdn.net/liu1guo2qiang3/article/details/43311965
 * https://blog.csdn.net/luokh327/article/details/49617041
 * Date:2018-8-22
 * Author:Weipenghui
 */



#include<stdlib.h>
#include<imglib.h>
//#include"image_array.h"

typedef unsigned char uint8;
const int WIDTH = 512;
const int HEIGHT = 512;

int main(void)
{

    //-------------------------------方式1--------------------------------------------------------
   /*將圖像用matlab/python/C++/Java等生成.dat文件罢坝,連接上DSP核之后,在Memory Brower中l(wèi)oad Memory即可
    * 特點(diǎn):導(dǎo)入數(shù)據(jù)速度快搅窿,但是相對繁瑣
    * */
    uint8* srcImg1 = (uint8*)0x80000000;  //DDR3地址嘁酿,原始圖像
    uint8* dstImg = (uint8*)0x80050000;   //DDR3地址,處理后的結(jié)果

    //DSP ImageLib  sobel算子
    IMG_sobel_3x3_8(srcImg1,dstImg,512,512);
}


Step5:編譯運(yùn)行,觀察結(jié)果

連接上仿真器


image.png

將之前生成的.dat文件導(dǎo)入內(nèi)存


image.png

image.png

image.png

數(shù)據(jù)導(dǎo)入成功


image.png

觀察導(dǎo)入的數(shù)據(jù)的圖像男应,右鍵屬性


image.png

設(shè)置參數(shù)


image.png

然后返回Image闹司,右鍵refresh


image.png

激動(dòng)人心的時(shí)刻
運(yùn)行程序...觀察Sobel算子的結(jié)果

更改地址,設(shè)置為dstImg的地址


image.png

刷新顯示
鐺鐺鐺...

image.png

以上就是TI DSP C6657加載圖像沐飘,配置imglib庫游桩,圖像處理的完整過程。在后續(xù)耐朴,我講探索其他方式加載圖像借卧,喜歡的小伙伴請支持哦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末筛峭,一起剝皮案震驚了整個(gè)濱河市谓娃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蜒滩,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奶稠,死亡現(xiàn)場離奇詭異俯艰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)锌订,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門竹握,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辆飘,你說我怎么就攤上這事啦辐∥酱” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵芹关,是天一觀的道長续挟。 經(jīng)常有香客問我,道長侥衬,這世上最難降的妖魔是什么诗祸? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮轴总,結(jié)果婚禮上直颅,老公的妹妹穿的比我還像新娘。我一直安慰自己怀樟,他們只是感情好功偿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著往堡,像睡著了一般械荷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上投蝉,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天养葵,我揣著相機(jī)與錄音,去河邊找鬼瘩缆。 笑死关拒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的庸娱。 我是一名探鬼主播着绊,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼熟尉!你這毒婦竟也來了归露?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤斤儿,失蹤者是張志新(化名)和其女友劉穎剧包,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體往果,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疆液,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了陕贮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片堕油。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出掉缺,到底是詐尸還是另有隱情卜录,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布眶明,位于F島的核電站艰毒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏赘来。R本人自食惡果不足惜现喳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望犬辰。 院中可真熱鬧嗦篱,春花似錦、人聲如沸幌缝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涵卵。三九已至浴栽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間轿偎,已是汗流浹背典鸡。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坏晦,地道東北人萝玷。 一個(gè)月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像昆婿,于是被迫代替她去往敵國和親球碉。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容