2012-01-20 5 views
0

Logitech pro9000 HDウェブカメラを使用しています。 2 mp zeiss lenceを持ち、HDビデオなどをキャプチャすることができます。blaa blaa 私のコードは全く同じではありませんが、単一の機能で統合されています。今実際の解像度と補間ビットマップ形式が混同されています

私は1600×1200の解像度を使用する場合、すべてが正常に動作問題。そして、受信したバイトのサイズは、次のように

for 640 x 480 VideoHeader.dwBytesUsed are 921600 
for 1600 x 1200 VideoHeader.dwBytesUsed are 5760000 
from 1600 x 1200 to 3264 x 2448 VideoHeader.dwBytesUsed are 5760000 

しかし、1600×1200バイトのサイズは1600×1200と同じですが、私のプログラムは、ビットマップIイベントにデータをビットマップのサイズを設定しようとすることをひそかすることはできませんから、より高い解像度のために1600 x 1200しかし、何も私は下にぼやけて取得またはプレビュービットマップの下部に複数の画像を引き延ばす。 は、私は、これは補間は、私がアクセスしていますが、ドライバや会社 によって与えられたカメラアプリケーションで実際に実装されている私の質問があり、補間 と呼ばれている知っている手段Iは補間データを取得していますか私は私のプログラムでは、アルゴリズムを実装する必要がありません。 これが事実であるならば、私は、デバイスイベントから1600×1200の画像を取得していない午前理由は何私を混同して、ドライバがまだロジクールから1600×1200枚の画像やソフトウェアを返却した場合である3264 X 2448のサイズに画像を補間されたことは、私はでビデオフォーマットを設定しますX 2448 3264 に初期化コード[私は24にビットを設定していると、カメラはFormat24bppRgbピクセルフォーマットを使用している] 誰も私を助けることができる!....

私のコードは、本当に申し訳ありません

Private Sub FrameCallBack(ByVal lwnd As IntPtr, ByVal lpVHdr As IntPtr) 
    Dim _SnapSize As Size = New Size(640, 480) 
    'Dim _SnapSize As Size = New Size(1600, 1200) 
    Dim _SnapSize As Size = New Size(3264, 2448) 
    Dim VideoHeader As New Avicap.VIDEOHDR 
    Dim VideoData(-1) As Byte 
    VideoHeader = CType(Avicap.GetStructure(lpVHdr, VideoHeader), Avicap.VIDEOHDR) 
    VideoData = New Byte(VideoHeader.dwBytesUsed - 1) {} 
    Marshal.Copy(VideoHeader.lpData, VideoData, 0, VideoData.Length) 
    Dim _SnapFormat As System.Drawing.Imaging.PixelFormat = PixelFormat.Format24bppRgb 
    Dim outBit As Bitmap 
    If Me.IsValidData Then 
     outBit = New Bitmap(_SnapSize.Width, _SnapSize.Height, _SnapFormat) 
     Dim bitData As BitmapData 
     bitData = outBit.LockBits(New Rectangle(Point.Empty, _SnapSize), ImageLockMode.WriteOnly, _SnapFormat) 
     outBit.UnlockBits(bitData) 
     GC.Collect() 
     GC.WaitForPendingFinalizers() 
    End If 
End Sub 

答えて

0

まずあり私は完全に

この質問についてを忘れてしまいました答えは - これらの構造はネイティブAPI用です。

マイカメラは2メガピクセルのレンズであり、Iは、1600×1200 の解像度で数学を適切な画像を得ていた単純な

1600×1200 =192万総ピクセル

ピクセルフォーマットは、24 BPP手段3であります各ピクセルの合計サイズ5760000

このレンズはもはや2mb以上のデータを生成することができません.1600x1200はこのカメラのハードウェア解像度の制限であり、ハードウェアは高解像度画像の補間には対応しませんgettiの後に手動で行う必要がありますカメラからのオリジナル画像。

これは、私はまったく同じものです。私は1600x1200の画像をキャプチャし、補間を作成して画像の品質を向上させるために画像処理アルゴリズムを作成します。 プロジェクトは、文書スキャン用の安価な書籍スキャンデバイスを作成していました。成功し、クライアントによって使用されました。

関連する問題