走り去るドクターイエローをスローモーション映像で記録する('24.06.15)#
引退するドクターイエローをSlomo動画で撮ってみる#
東海道新幹線・山陽新幹線区間を走る点検用新幹線車両、ドクターイエローが引退するというニュースを眺め、[昨日は引退するドクターイエロー(のぞみ検測下り)が走る動画を撮ってみた](file:///Users/jun/source/jupyter-book-2024/sd_all/_build/html/day_240614_opencv_dryellow.html)。 そして、競馬の決勝写真撮影カメラ風に、ゴールに向かうドクターイエローの雄姿を映像にしてみた。
今日は、のぞみ検測上りのドクターイエローを240コマ/秒でスマホ撮影して、昨日同様に決勝写真撮影カメラ風の映像を作ってみる。 まずは、撮影したのが次の動画だ。
Show code cell source
import IPython.display
IPython.display.YouTubeVideo('x6lD63xYp6M')
高速度撮影映像から決勝写真撮影カメラ風画像を作る#
昨日同様に、決勝写真撮影カメラ風の映像にしてみる。 横方向(時間方向)の解像度は高くはなったが、どうも今ひとつだ。 綺麗な映像が撮れているとは言い難い。 明日以降もドクターイエローはまだ走る。 もう少し良い画像が得られるように試行錯誤してみたいと思う。
Show 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_240615_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()
Show code cell source
plt.figure(figsize=(18,27),dpi=180)
plt.axis('off')
#plt.imshow(img)
plt.imshow(img[850:950,200:-250])
……