走り去るドクターイエローを決勝写真撮影カメラで記録する('24.06.14)

走り去るドクターイエローを決勝写真撮影カメラで記録する('24.06.14)#

引退するドクターイエローが走る動画を撮ってみる#

東海道新幹線・山陽新幹線区間を走る点検用新幹線車両、ドクターイエローが引退するというニュースを眺めた。 JR東海の車両は来年1月、JR西日本の車両は2027年をめどに運行を終えるという。 今住んでいる部屋は、窓を開けると新幹線の高架が見えるので、引退するドクターイエローが走る動画を撮ってみた。

Hide code cell source
import IPython.display

IPython.display.YouTubeVideo('Ez5QOBci9mo')

ゴールする瞬間を撮影する決勝写真撮影カメラ風画像を作る#

これまで走り続けて、引退するというドクターイエロー。 せっかくだから、競馬でゴールする瞬間を撮影する決勝写真撮影カメラを作ってみようと思う。 つまり、ドクターイエローが向かう目的地、そのゴールにラインカメラが取り付けられていたとしたら、どんな姿が見えるのか、それを上記動画から作ってみる。

Hide code cell source
import numpy as np
import matplotlib.pyplot as plt
import cv2

spec_file = '/Users/jun/source/jupyter-book-2024/sd_all/data/day_240614_opencv_dryellow_trim.mov'
cap = cv2.VideoCapture(spec_file)
w = round(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
h = round(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
frame_n = round(cap.get(cv2.CAP_PROP_FRAME_COUNT))

img=np.zeros((h,frame_n,3),np.uint8)

x=round(w/2)
n=0
while(cap.isOpened()):
    ret,frame=cap.read()
    if ret:
        img[:,n,0]=frame[:,x,2]
        img[:,n,1]=frame[:,x,1]
        img[:,n,2]=frame[:,x,0]
        n = n+1
    else:
        break
cap.release()
Hide code cell source
plt.figure(figsize=(18,27),dpi=180)
plt.axis('off')
plt.imshow(img[1200:1400,20:250])
<matplotlib.image.AxesImage at 0x29f7e8250>
_images/6343842d6288e23b36e96b77ffd1f0b54067923af89fc74fff3a6e3f7a19124a.png

撮影動画の撮影フレームレートが低いから、解像度が低くて7両ある車両が4両に見えてしまっていたりもする。 けれど、レールの先に向かって走るドクターイエローの雄姿が、決勝写真撮影カメラ風画像に写っているような気もする。