亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python將YUV420P文件轉PNG圖片格式的兩種方法

瀏覽:22日期:2022-06-29 11:38:37
方法一:

import osimport cv2 as cvimport numpy as np# 讀取yuv420p的一幀文件,并轉化為png圖片if __name__ == ’__main__’: filepath = ’one_frame_of_highway.yuv’ binfile = open(filepath, ’rb’) size = os.path.getsize(filepath) image_width = 352 image_hight = 288 image_y = [[0] * image_width for i in range(image_hight)] image_u = [[0] * image_width for i in range(image_hight)] image_v = [[0] * image_width for i in range(image_hight)] for r in range(image_hight): for c in range(image_width): image_y[r][c] = binfile.read(1)[0] Image_Y = np.array(image_y) for r in range(int(image_hight / 2)): for c in range(int(image_width / 2)): pixel = binfile.read(1)[0] image_u[2 * r + 0][2 * c + 0] = pixel image_u[2 * r + 1][2 * c + 0] = pixel image_u[2 * r + 0][2 * c + 1] = pixel image_u[2 * r + 1][2 * c + 1] = pixel Image_U = np.array(image_u) for r in range(int(image_hight / 2)): for c in range(int(image_width / 2)): pixel = binfile.read(1)[0] image_v[2 * r + 0][2 * c + 0] = pixel image_v[2 * r + 0][2 * c + 1] = pixel image_v[2 * r + 1][2 * c + 0] = pixel image_v[2 * r + 1][2 * c + 1] = pixel Image_V = np.array(image_v) binfile.close() compose = np.array([Image_Y, Image_V, Image_U]).transpose([1, 2, 0]).astype(np.uint8) Image = cv.cvtColor(compose, cv.COLOR_YUV2RGB) cv.imwrite('one_frame_of_highway.yuv.png', Image)方法二:

ffmpeg -s 352x288 -i one_frame_of_highway.yuv one_frame_of_highway.png

highway視頻網址:http://trace.eas.asu.edu/yuv/index.html

附錄:

將yuv文件轉化為一幀幀yuv文件

#include <stdio.h>#include <fcntl.h>#include <zconf.h>#include <stdint.h>#include <strings.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <errno.h>#include <sys/types.h>#include <sys/stat.h>int File_Size(int fd) { struct stat st; fstat(fd, &st); return st.st_size;}int Frame_Size_Of_Cif() { int width = 352; int heigh = 288; int Y_SIZE = width * heigh; int U_SIZE = Y_SIZE / 4; int V_SIZE = Y_SIZE / 4; int Frame_SIZE = Y_SIZE + U_SIZE + V_SIZE; return Frame_SIZE;}int Frames_Of_Cif_File(int fd) { if (fd < 0) { printf('Invalid FD!'); return -1; } int Frame_SIZE = Frame_Size_Of_Cif(); int fd_size = File_Size(fd); return fd_size / Frame_SIZE;}void Abstract_Frame_From_CIF_File(int fd,char *Path_And_Prefix_Img,int Len) { int Frame_SIZE = Frame_Size_Of_Cif(); char file[128]; memset(file,0,128); memcpy(file,Path_And_Prefix_Img,Len); uint8_t buf[Frame_SIZE]; int ret = -1; int frames = 0; while ((ret = read(fd, buf, Frame_SIZE))) { frames += 1; uint64_t len = strlen(file); sprintf(file + len, '%d', frames); len = strlen(file); sprintf(file + len, '%s', '.yuv'); int fdw = open(file, O_RDWR | O_CREAT, 0777); write(fdw, buf, ret); memset(file,0,128); memcpy(file,Path_And_Prefix_Img,Len); close(fdw); } printf('Abstract %d frames!n', frames);}int main() { int fd = open('./yuv420p_352x288.yuv', O_RDONLY); Abstract_Frame_From_CIF_File(fd,'/home/liu/Frames/Frames_',strlen('/home/liu/Frames/Frames_')); close(fd); return 0;}

以上就是python將YUV420P文件轉PNG圖片格式的兩種方法的詳細內容,更多關于python將YUV420P文件轉PNG的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 免费观看欧美成人h | 日本黄色小说网站 | 亚洲国产成人九九综合 | 黄色在线视频在线观看 | 成人免费真人毛片视频 | 尤物在线网站 | 亚洲欧美日韩在线线精品 | 久操网址| 女神穿上情趣丝袜啪啪一整晚 | 国产视频在线观看福利 | 久久精品视频2 | 精品国内视频 | 精品国产日韩亚洲一区91 | 一级视频在线 | 日本三级黄色片网站 | 欧美精品国产一区二区 | 成人黄色免费在线观看 | 国产美女福利视频福利 | 国产精品久久久影院 | 国产69精品久久久久9999 | 亚洲色图综合网 | 91久久国产露脸国语对白 | 亚州精品一区中文字幕乱码 | 国产精品宾馆在线精品酒店 | 国产精品美女免费视频观看 | 亚洲国产韩国一区二区 | 黄色免费在线观看网址 | a国产成人免费视频 | 6080yy 久久 亚洲 日本 | 男女毛片免费视频看 | 国内精品九一在线播放 | 国产精品嫩草免费视频 | 久综合网 | 亚洲第一视频在线观看 | 日韩亚洲欧美一区二区三区 | 亚洲国产精品久久久久网站 | 久久我们这里只有精品国产4 | 久久婷婷在线 | 成人午夜啪啪免费网站 | 九色国产在视频线精品视频 | 亚洲视频精品在线 |