ここでは,DirectShow?によるビデオキャプチャを簡単に行うことができるライブラリ
videoInput Library
とOpenCVを組み合わせたサンプルプログラムを紹介します.
[注意1]
OpenCV 1.1pre1からvideoInput LibraryがOpenCVに組み込まれるになったため,
OpenCVのcvSetCaptureProperty?関数にてキャプチャサイズ(幅,高さ)の設定が有効が有効になります.
一方,videoInput0.1995から設定が可能となっているフレームレートについては
OpenCV 1.1pre1のcvSetCaptureProperty?関数から設定できないようです.
そのため,現状,フレームレートを制御したい場合にはvideoInputを
直接扱う方が簡単かもしれません.以降のソースコードはvideoInputにより
キャプチャサイズ,フレームレートを設定してキャプチャを行う例となっています.
まず,Windows SDK,もしくはPlatform SDKをインストールしましょう(※OpenCV/VS 2005でCVCAMを使う参照).
OpenCVのインストールはOpenCV@Chihara-Lab.を参照.
videoInput Library開発サイトより,(2009/8/29時点)最新のvideoInput0.1995.zipをダウンロードし,展開します.
今回のサンプルでは以下のファイルをプロジェクトに追加しました.
[ライブラリ]
videoInput0.1995\compiledLib\compiledByVS2005\
にあるvideoInput.lib
[ヘッダ]
videoInput0.1995\compiledLib\compiledByVS2005\include
にあるvideoInput.h
プロジェクト-プロパティ-構成プロパティ-リンカ-コマンドライン-追加のオプション に
/NODEFAULTLIB:"atlthunk"
と記述します.
videoInput Libraryを使ったサンプルプログラムを
以下に示します.
サンプルプログラム1,サンプルプログラム2
ともに見た目の結果は同じです.
|
VI.getPixels関数で取得した情報をmemcpy関数でImageData?にコピー.
|
この方法だと一見,ImageData?のアドレスを上書きしていてcvReleaseImage?で正しく解放できなくなるように見えますが,実は大丈夫です.
詳細が知りたい方はdandelion's log » cvReleaseImageの挙動についてに
説明を書いたので参照ください.
キャプチャ画像をウィンドウに表示するプログラムです.
※間違い・御指摘等ありましたら,Contactより連絡ください.
videoInput.h にサンプルプログラムやvideoInputクラスの
各種メンバ関数について説明が記述されており参考になります.
google01
google02
google03
google04
google05
google06
google07
google08
google09
google10
google11
google12
google13
google14
google15
google16
google17
google18
google19
google20
google21
google22
google23
google24
google25
google26
google27
google28
google29
google30
google31
google32
google33
google34
google35
google36
google37
google38
google39
google40
google41
google42
google43
google44
google45
google46
google47
google48
google49
google50
google51
google52
google53
google54
google55
google56
google57
google58
google59
google60
google61
google62
google63
google64
google65
google66
google67
google68
google69
google70
google71
google72
google73
google74
google75
google76
google77
google78
google79
google80
google81
google82
google83
google84
google85
google86
google87
google88
google89
google90
google91
google92
google93
google94
google95
google96
google97
google98
google99
google100
google101
google102
google103
google104
google105
google106
google107
google108
google109
google110
google111
google112
google113
google114
google115
google116
google117
google118
google119
google120
google121
google122
google123
google124
google125
google126
google127
google128
google129
google130
google131
google132
google133
google134
google135
google136
google137
google138
google139
google140
google141
google142
google143
google144
google145
google146
google147
google148
google149
google150
google151
google152
google153
google154
google155
google156
google157
google158
google159
google160
google161
google162
google163
google164
google165
google166
google167
google168
google169
google170
google171
google172
google173
google174
google175
google176
google177
google178
google179
google180
google181
google182
google183
google184
google185
google186
google187
google188
google189
google190
google191
google192
google193
google194
google195
google196
google197
google198
google199
google200
google201
google202
google203
google204
google205
google206
google207
google208
google209
google210
google211
google212
google213
google214
google215
google216
google217
google218
google219
google220
google221
google222
google223
google224
google225
google226
google227
google228
google229
google230
google231
google232
google233
google234
google235
google236
google237
google238
google239
google240
google241
google242
google243
google244
google245
google246
google247
google248
google249
google250
google251
google252
google253
google254
google255
google256
google257
google258
google259
google260
google261
google262
google263
google264
google265
google266
google267
google268
google269
google270
google271
google272
google273
google274
google275
google276
google277
google278
google279
google280
google281
google282
google283
google284
google285
google286
google287
google288
google289
google290
google291
google292
google293
google294
google295
google296
google297
google298
google299
google300
google301
google302
google303
google304
google305
google306
google307
google308
google309
google310
google311
google312
google313
google314
google315
google316
google317
google318
google319
google320
google321
google322
google323
google324
google325
google326
google327
google328
google329
google330
google331
google332
google333
google334
google335
google336
google337
google338
google339
google340
google341
google342
google343
google344
google345
google346
google347
google348
google349
google350
google351
google352
google353
google354
google355
google356
google357
google358
google359
google360
google361
google362
google363
google364
google365
google366
google367
google368
google369
google370
google371
google372
google373
google374
google375
google376
google377
google378
google379
google380
google381
google382
google383
google384
google385
google386
google387
google388
google389
google390
google391
google392
google393
google394
google395
google396
google397
google398
google399
google400
google401
google402
google403
google404
google405
google406
google407
google408
google409
google410
google411
google412
google413
google414
google415
google416
google417
google418
google419
google420
google421
google422
google423
google424
google425
google426
google427
google428
google429
google430
google431
google432
google433
google434
google435
google436
google437
google438
google439
google440
google441
google442
google443
google444
google445
google446
google447
google448
google449
google450
google451
google452
google453
google454
google455
google456
google457
google458
google459
google460
google461
google462
google463
google464
google465
google466
google467
google468
google469
google470
google471
google472
google473
google474
google475
google476
google477
google478
google479
google480
google481
google482
google483
google484
google485
google486
google487
google488
google489
google490
google491
google492
google493
google494
google495
google496
google497
google498
google499
google500
google501
google502
google503
google504
google505
google506
google507
google508
google509
google510
google511
google512
google513
google514
google515
google516
google517
google518
google519
google520
google521
google522
google523
google524
google525
google526
google527
google528
google529
google530
google531
google532
google533
google534
google535
google536
google537
google538
google539
google540
google541
google542
google543
google544
google545
google546
google547
google548
google549
google550
google551
google552
google553
google554
google555
google556
google557
google558
google559
google560
google561
google562
google563
google564
google565
google566
google567
google568
google569
google570
google571
google572
google573
google574
google575
google576
google577
google578
google579
google580
google581
google582
google583
google584
google585
google586
google587
google588
google589
google590
google591
google592
google593
google594
google595
google596
google597
google598
google599
google600
google601
google602
google603
google604
google605
google606
google607
google608
google609
google610
google611
google612
google613
google614
google615
google616
google617
google618
google619
google620
google621
google622
google623
google624
google625
google626
google627
google628
google629
google630
google631
google632
google633
google634
google635
google636
google637
google638
google639
google640
google641
google642
google643
google644
google645
google646
google647
google648
google649
google650
google651
google652
google653
google654
google655
google656
google657
google658
google659
google660
google661
google662
google663
google664
google665
google666
google667
google668
google669
google670
google671
google672
google673
google674
google675
google676
google677
google678
google679
google680
google681
google682
google683
google684
google685
google686
google687
google688
google689
google690
google691
google692
google693
google694
google695
google696
google697
google698
google699
google700
google701
google702
google703
google704
google705
google706
google707
google708
google709
google710
google711
google712
google713
google714
google715
google716
google717
google718
google719
google720
google721
google722
google723
google724
google725
google726
google727
google728
google729
google730
google731
google732
google733
google734
google735
google736
google737
google738
google739
google740
google741
google742
google743
google744
google745
google746
google747
google748
google749
google750
google751
google752
google753
google754
google755
google756
google757
google758
google759
google760
google761
google762
google763
google764
google765
google766
google767
google768
google769
google770
google771
google772
google773
google774
google775
google776
google777
google778
google779
google780
google781
google782
google783
google784
google785
google786
google787
google788
google789
google790
google791
google792
google793
google794
google795
google796
google797
google798
google799
google800
google801
google802
google803
google804
google805
google806
google807
google808
google809
google810
google811
google812
google813
google814
google815
google816
google817
google818
google819
google820
google821
google822
google823
google824
google825
google826
google827
google828
google829
google830
google831
google832
google833
google834
google835
google836
google837
google838
google839
google840
google841
google842
google843
google844
google845
google846
google847
google848
google849
google850
google851
google852
google853
google854
google855
google856
google857
google858
google859
google860
google861
google862
google863
google864
google865
google866
google867
google868
google869
google870
google871
google872
google873
google874
google875
google876
google877
google878
google879
google880
google881
google882
google883
google884
google885
google886
google887
google888
google889
google890
google891
google892
google893
google894
google895
google896
google897
google898
google899
google900
google901
google902
google903
google904
google905
google906
google907
google908
google909
google910
google911
google912
google913
google914
google915
google916
google917
google918
google919
google920
google921
google922
google923
google924
google925
google926
google927
google928
google929
google930