900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > python将输出结果写入csv_python - 将输出写入CSV文件[处于保留状态] - 堆栈内存溢出...

python将输出结果写入csv_python - 将输出写入CSV文件[处于保留状态] - 堆栈内存溢出...

时间:2020-03-07 03:00:41

相关推荐

python将输出结果写入csv_python - 将输出写入CSV文件[处于保留状态] - 堆栈内存溢出...

我已经建立了一个对象检测模型来检测视频帧中的一些对象。它可以正常工作,但是我无法将输出数据写入到csv文件中

我已经编写了用于对象检测的代码,并将检测的一些输出参数写入csv文件。

from __future__ import division

import os

import cv2

import numpy as np

import sys

import pickle

from optparse import OptionParser

import time

from keras_frcnn import config

from keras import backend as K

from keras.layers import Input

from keras.models import Model

from keras_frcnn import roi_helpers

import pandas

import keras_frcnn.resnet as nn

import tensorflow as tf

import datetime

import csv

from glob import glob

all_dets = []

for key in bboxes:

bbox = np.array(bboxes[key])

new_boxes, new_probs = roi_helpers.non_max_suppression_fast(bbox, np.array(probs[key]), overlap_thresh=0.5)

for jk in range(new_boxes.shape[0]):

(x1, y1, x2, y2) = new_boxes[jk, :]

(real_x1, real_y1, real_x2, real_y2) = get_real_coordinates(ratio, x1, y1, x2, y2)

# Here I created a list of 4 entries that contains the real coordinates

img_name_list.append(img_name)

x1_list.append(real_x1)

x2_list.append(real_x2)

y1_list.append(real_y1)

y2_list.append(real_y2)

cv2.rectangle(image, (real_x1, real_y1), (real_x2, real_y2),

(int(class_to_color[key][0]), int(class_to_color[key][1]), int(class_to_color[key][2])), 2)

textLabel = '{}: {}'.format(key, int(100 * new_probs[jk]))

all_dets.append((img_name,key, 100 * new_probs[jk]))

(retval, baseLine) = cv2.getTextSize(textLabel, cv2.FONT_HERSHEY_COMPLEX, fontScale=1, thickness=1)

textOrg = (real_x1, real_y1 - 0)

cv2.rectangle(image, (textOrg[0] - 5, textOrg[1] + baseLine - 5),

(textOrg[0] + retval[0] + 5, textOrg[1] - retval[1] - 5), (0, 0, 0), 2)

cv2.rectangle(image, (textOrg[0] - 5, textOrg[1] + baseLine - 5),

(textOrg[0] + retval[0] + 5, textOrg[1] - retval[1] - 5), (255, 255, 255), -1)

cv2.putText(image, textLabel, textOrg, cv2.FONT_HERSHEY_DUPLEX, fontScale=1, color=(0, 0, 0), thickness=1)

print(all_dets)

######### DATA of ALL_DETS[] to be written to METADATA.CSV###########

df1 = pandas.DataFrame(all_dets, columns=['Filename', 'Detected Object', 'Probability'])

# df1=pandas.DataFrame(data={"Filename":img_name,"Detected Object":key,"Probability":int(100 * new_probs[jk])})

df1.to_csv(out + "/metadata.csv", sep=',', index=False)

######### CO-ORDINATE DATA TO BE WRITTEN TO ANOTHER CSV##############

df = pandas.DataFrame(data={"img_name": img_name, "x1": x1_list, "y1": y1_list, "x2": x2_list, "y2": y2_list})

df.to_csv(out + "/bounding_box_coordinates_ans.csv", sep=',', index=False)

cv2.imwrite(out + "/{}.jpg".format(img_name), image)

if __name__ == '__main__':

x = "C:\\Python36\\videos\\*.mp4"

extractFrames(x)

我希望将变量df1的输出写入metadata.csv ,该输出应具有当前图像的名称,检测到的对象的名称及其检测百分比,但是每次都为空白 。

我还希望将一些数据从变量df写入bounding_box_coordinates_ans csv文件。 该文件存储了检测到的对象的坐标值,但是同一图像帧的坐标值一次又一次地重复,我觉得这是一些循环缩进。 我无法解决过去许多天的问题,我需要将输出保存在这些文件中。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。