首页 > 解决方案 > 如何在 Python 中获取简单的数据输出并将其导出到 Excel(或记事本)?

问题描述

我正在做一个涉及 Python 的项目。我从来没有将它与 OpenCV 一起使用过。目标是拍摄一段 16x16 的视频片段,我正在使用单个图像进行练习,并获得它的 RBG 值。我想在视频上运行数千帧,我不知道如何循环播放。例如,一旦我拥有它([71 155 90]),我想将它保存到记事本、Excel 工作表或一些简单的方法或参考我的结果。

我尝试查找有关如何导出值的教程,但它们使用了很多不同的术语,我不知道从哪里开始。

import numpy as np
import cv2

img = cv2.imread('dog.jpg', cv2.IMREAD_COLOR)

px = img[16,16]

print(px)

我唯一得到的是终端中的 RBG 输出 [71 155 90]。我不知道从那里做什么。我不知道如何导出值。

标签: pythonexcelopencv

解决方案


我目前正在研究类似的东西,而不是我正在处理图像的视频,所以我四处寻找有关如何从文件夹中批量导出图像/帧并将数据保存到 numpy 数组中的教程。这是我的代码示例 *不确定里面有多少错误,但它能够将图像帧加载并保存到数组中。我使用 tqdm 来显示一个简单的进度条,以便我知道调用此函数时图像加载的状态。

def img_readph(path):
readph =[i for i in listdir(path) if isfile(join(path,i))]
img = np.empty(len(readph), dtype=object)
for j in tqdm(range(0, len(readph))):
    img[j] = cv2.imread(join(path,readph[j]))
return img

为了加载和处理当前保存在 numpy 数组堆栈中的图像,我使用这组代码进行提取,执行基本的 psnr 计算并将数据保存到 .txt(学习如何转换结果到一个.csv,我也可以在python中加载/保存/追加以供将来编辑)。

for index in tqdm(range(len(img))):
        (psnr, meanerror) = calculate_psnr(imgGT[index], imgSR[index])
        print('Image No.{} has average mean square error of {} and the average PSNR is {}'.format(index,meanerror,psnr))

这样做可以让我循环之前的 numpy 数组中的每个视频帧,以执行计算 psnr 的操作。

您可以做的是尝试编写代码以使用以下方法将 RGB 值转换为函数,

txtfilename = input("enter filename: ")
with open(str(txtfilename)+".txt","w") as results:
    for index in tqdm(range(0, len(img)))    #the array from imread
    img = cv2.imread('img', cv2.IMREAD_COLOR)
    px = img[width, height]
    print("The RBG values are {}".format(px), file=results)

我猜是这样的,希望对您有所帮助。


推荐阅读