日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

海康摄像头 海思AI芯片(Hi35XX): 图像jpg转.bgr

發(fā)布時間:2025/3/20 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 海康摄像头 海思AI芯片(Hi35XX): 图像jpg转.bgr 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

把一張jpg圖片轉(zhuǎn)成bgr(注意順序是bgr)二進(jìn)制文件,最近在弄華為Hi3516DV300開發(fā)板上的一些深度學(xué)習(xí)的樣例程序,換言之,35xx nnie SDK只支持BGR以及yuv格式的數(shù)據(jù)輸入。那么當(dāng)手頭剛好只有jpeg/png等圖片文件時,怎么來進(jìn)行目標(biāo)識別呢,一般的思路是用opencv來讀取圖片文件,然后再轉(zhuǎn)換成BGR/YUV等格式,最后扔到NNIE模塊來進(jìn)行深度學(xué)習(xí)推理。

本篇講解jpg轉(zhuǎn)bgr,也就是它的輸入文件不是普通的jpg,而是bgr格式的二進(jìn)制文件,還別說,這樣確實(shí)是大大節(jié)省了空間。一張3.8M的測試文件(test.jpg),轉(zhuǎn)成二進(jìn)制后為276K。本篇使用python來實(shí)現(xiàn),網(wǎng)上大部分都是c/c++實(shí)現(xiàn)的,對于一個python用習(xí)慣并且用來驗(yàn)證結(jié)果,我覺得python轉(zhuǎn)化更為習(xí)慣吧。

本代碼僅面向?qū)W習(xí)海思35xx的各位。轉(zhuǎn)化完不是標(biāo)準(zhǔn)bgr格式,由于Hi35xx的bgr分布不是標(biāo)準(zhǔn)格式,所以寫了一點(diǎn)代碼進(jìn)行bgr與jpg格式圖片互相轉(zhuǎn)化,并逆向思維進(jìn)行測試轉(zhuǎn)化后的bgr。

代碼部分

# -*- coding: UTF-8 -*- # author: AnnSun # date :2020.05.12import os import cv2 from numpy import * import numpy as npclass JPG2BGR_Solver(object):def __init__(self):self.img_size = 416 # save bgr size# jpj2bgr converbgr=true 參數(shù)設(shè)置self.imgpath_jpg = r"pose_368.jpg"self.saveimg_bgr = r"pose_368.bgr"# testbgr converbgr=false 參數(shù)設(shè)置self.jpeg_path = r"./BGR_img/double_roipooling_224_224.jpg"self.path = "./BGR_img/24_608x608.bgr""""海思nnie模型需要輸入bgr 格式的圖片,這個python腳本可以把jpg格式的圖片轉(zhuǎn)換成.bgr格式的圖片"""def jpg2bgr(self):save_img_size = self.img_sizeimgpath = self.imgpathimg = cv2.imread(imgpath)if img is None:print("img is none")else:img = cv2.resize(img,(save_img_size,save_img_size))(B, G, R) = cv2.split(img)with open(saveimg,'wb')as fp:for i in range(save_img_size):for j in range(save_img_size):fp.write(B[i, j])print(B[i,j])for i in range(save_img_size):for j in range(save_img_size):fp.write(G[i, j])for i in range(save_img_size):for j in range(save_img_size):fp.write(R[i, j])print("save success")"""查看bgr文件內(nèi)容并顯示為圖片"""def test_Hi_bgr(self):jpeg_path = self.jpeg_pathpath = self.pathimgsize = self.img_sizef = open(path, 'rb')src = cv2.imread(jpeg_path)src = cv2.resize(src, (imgsize, imgsize))print(src.shape)h = src.shape[0]w = src.shape[1]c = src.shape[2]print(f.name)(B, G, R) = cv2.split(src)data = f.read(imgsize*imgsize*3)for j in range(imgsize):for i in range(imgsize):B[j, i] = data[j*imgsize + i]G[j, i] = data[j*imgsize + i + imgsize*imgsize]R[j, i] = data[j*imgsize + i + imgsize*imgsize*2]newimg = cv2.merge([B, G, R])cv2.imshow("new", newimg)f.close()cv2.waitKey(0)if __name__ == '__main__':converbgr = truesolverObj = JPG2BGR_Solver()if (converbgr == true):solverObj.jpg2bgr()else:solverObj.test_Hi_bgr()

參考文章:海思AI芯片(Hi35XX): 圖像jpg轉(zhuǎn).bgr

總結(jié)

以上是生活随笔為你收集整理的海康摄像头 海思AI芯片(Hi35XX): 图像jpg转.bgr的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。