1

avi ビデオからフレームを取得し、Matlab でカラー画像を開き、R、G、B の 3 つのチャネルのピクセル値を確認します。(ケース 1)

その後、opencv2.4.3 を使用してフレームを取得し、ピクセル値を txt ファイルに保存します。次に、txtファイルを確認すると、ピクセル値がMatlabとは異なることに気付きました(opencvで開いたカラー画像はBGRであり、ピクセルのインデックス位置はマイナス1でなければなりません(Matlabでは、ピクセル位置(x、y))。 ,pixelposition (x-1,y-1)))。(ケース 2)

最後に、opencv を使用して cvSaveImage 関数でフレームを保存し、このフレームを Matlab で開きます。この場合、ピクセル値も上記の 2 つの場合とは異なります。

なぜこれが起こるのですか?

答えてくれてありがとう!私の英語でごめんなさい!

これは私のコードです http://www.scribd.com/doc/129263549/Code (読むにはダウンロードする必要があります)

4

1 に答える 1

1

Matlab と OpenCV では、ピクセル値を格納する方法が異なります。Matlab は圧縮を使用して、保存する前に .jpeg 画像を保存します。そのため、Matlab と OpenCV で同様の画像のピクセル データを表示すると、見た目が異なります。

Matlab と OpenCV の両方で同じソース イメージを読み込んで保存すると、前者は後者よりもサイズが小さくなります。画像に対して操作を行わなくても。

両方の画像データを同じに見せる方法はありません。幸いなことに、画像に対して行われる操作は、内部構造のこの違いの影響を受けません。たとえば、Matlab と OpenCV で特定のピクセルのインデックスを見つけようとすると、値が同じに見えなくても、どちらも正しい値が得られます。

于 2013-03-26T21:12:47.807 に答える