Python如何将JPG图片转换为三逗号分隔RGB值的指定格式TXT文件
问题原因
你现有代码存在两个问题:
imread是OpenCV的方法,调用时缺少cv2.前缀,运行会触发NameError- 两层嵌套循环中逐个打印像素,导致每个像素单独占一行
修正后代码
直接打印输出
import cv2 # cv2.imread默认返回BGR顺序的像素数组,刚好匹配你的需求 img = cv2.imread('myimage.jpg') for row in img: # 逐个处理当前行的像素,转成b,g,r格式字符串后用空格拼接整行 line_content = ' '.join([f"{p[0]},{p[1]},{p[2]}" for p in row]) print(line_content)
直接写入到TXT文件(更适合大尺寸图片)
import cv2 img = cv2.imread('myimage.jpg') # 打开输出文件 with open('pixel_output.txt', 'w', encoding='utf-8') as f: for row in img: line_content = ' '.join([f"{p[0]},{p[1]},{p[2]}" for p in row]) # 写入当前行+换行符 f.write(line_content + '\n')
实现逻辑
OpenCV读取的图片为三维数组,结构为[图片高度, 图片宽度, 3],第一层遍历直接拿到图片每行的所有像素;对每行内的单个像素三元组,先格式化为逗号分隔的字符串,再用join方法以空格为分隔符拼接成整行内容,最终每行对应原图的一行像素,完全符合要求。
内容的提问来源于stack exchange,提问作者Meysiolio
相关产品推荐
相关产品推荐

