OpenCV 学習:画像群から .avi ファイル作成

2017-07-12 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
このところ、Python プログラムを“GSL Shell”に移植している。

その中で“画像群から .avi ファイル作成”処理コードが出てきた:
##### hogehoge.py
###### INdir, OTfile, fps は、設定済。

import cv2

os.chdir(INdir); flist=os.listdir('.');
img = cv2.imread( flist[0] ); os.chdir('..')
yy, xx, layers = img.shape

codec = 'CVID'
fourcc = cv2.VideoWriter_fourcc( *codec )
video = cv2.VideoWriter( OTfile, fourcc, fps, ( xx, yy ) )

os.chdir( INdir )
for IN in flist:
img = cv2.imread( IN )
video.write( img )
os.chdir( '..' )

video.release()
#####
の様なコード。つまり、
Python/OpenCV 学習:OpenCV 3.0 gold 導入”で書いた
“OpenCV”を使っている。

これなら、
“GSL Shell”に移植するのはほぼ“右から左”で出来る?

ここで、
気になるのは、
   codec  = 'CVID'
fourcc = cv2.VideoWriter_fourcc( *codec )
のところ。


Web検索で“参考サイト”を探してみた。

“OpenCV 3.0.0-dev documentation”の
Creating a video with OpenCV

“可変ブログ”の
OpenCVのVideoWriterを使って画像から動画を作る。

“tessy.org”の
ビデオの出力 - AkiWiki


これらを参考に、学習した。

以下のマクロが定義されている様ダ。
CV_FOURCC(c1,c2,c3,c4)   (((c1)&255) + (((c2)&255)<<8) + (((c3)&255)<<16) + (((c4)&255)<<24))
と云うことは、
codec  = 'CVID'
fourcc = ffi.cast( 'int32_t*', codec ) [0]
とすればイイ?


それで、頑張って移植してみた:
----- make_avi.gsl -----
------ INdir, OTfile, fps は、設定済。
--------------------------------------
cv2 = require'cv2'
ffi.cdef[[
typedef struct CvSize{ int xx; int yy; } CvSize;
void* cvCreateVideoWriter( const char* fname, int fourcc, double fps, CvSize frame_size, int is_color );
int cvWriteFrame( void* writer, const IplImage* image );
void cvReleaseVideoWriter( void** writer );
]] ----- 上記の 'void*' は、正しくは 'CvVideoWriter*'

codec = 'CVID'
fourcc = ffi.cast( 'int32_t*', codec ) [0]

require'pl'
flist=dir.getfiles( INDir )
img = cv2.cvLoadImageM( flist[1], 1 ) --- 'BGR' で読み込み
SZ=ffi.new( 'CvSize', img.xx, img.yy )

video = cv2.cvCreateVideoWriter( OTfile, fourcc, fps, SZ, 1 )

for z=1,#flist do
img = cv2.cvLoadImage( flist[z], 1 ) -- IplImage のみ可(CvMat 不可)?
cv2.cvWriteFrame( video, img )
end

cv2.cvReleaseVideoWriter( ffi.new( 'void*[1]', video ) )
で行けました。


本日はここまで。


Lua ( GSL Shell ) / OpenCV 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170605
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク