Python: запись значений интенсивности пикселей из видеофайла - PullRequest
0 голосов
/ 30 мая 2019

Я читаю в видео в оттенках серого. Я отмечаю круговой контур на каждом кадре видео и пытаюсь записать интенсивность каждого пикселя на этом контуре:

    frameCount += 1
    currentTimestamp = timestamp + frameCount/fps 
    file = open("myRecord.txt", "a+") #a+ to append to file
    file.write(str(currentTimestamp))
    circleSegment = get_circle_segment(center_pt, 60, 360) #this function returns a list of tuples, where each tuple (x,y) contains x- and y-coordinates of a point along the circular contour
    for el in circleSegment: 
        pixel = gray_frame[el[1],el[0]]
        #log information 
        file.write('\t' + str(pixel))
    file.write('\n')
    file.close()

Это прекрасно работает для круговой дуги до 180 ° и даже за ее пределами (я также проверил с 181 °). Однако, как только я выйду за определенное значение, например, 270 ° или 359 ° или 360 ° (полный круг, чего я и хочу), регистрируемые данные просто содержат китайские символы.

Понятия не имею, что может вызвать эту проблему! Может ли быть так, что как только мой txt-файл выходит за пределы 1000 КБ, что-то идет не так?

после комментариев этот код работает:

 frameCount += 1
    currentTimestamp = timestamp + frameCount/fps 
    storeData = []
    storeData.append(currentTimestamp)
    circleSegment = get_circle_segment(center_pt, 60, 360) 
    for el in circleSegment: 
        pixel = gray_frame[el[1],el[0]]
        storeData.append(pixel)

    #log information 
    file = open("myRecord.txt", mode="a+") #a+ to append to file
    for element in storeData:
        file.write('\t' + str(element))
    file.write('\n')
    file.close ()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...