2016-10-07 4 views
0

イメージをキャプチャしてグレーレベルイメージとして使用したいと考えています。画像が正しく検索されない

Iは、次のコードがあります。私のコードframe

CvCapture *p = cvCreateCameraCapture(0); 
cvSetCaptureProperty(p, CV_CAP_PROP_FRAME_WIDTH, 1024); 
cvSetCaptureProperty(p, CV_CAP_PROP_FRAME_HEIGHT, 1024); 
IplImage* frame; 
for (int i = 0; i < 25; i++) 
{ 
    frame = cvQueryFrame(p); 
} 
cvSaveImage("test.jpg", frame); 

Mat r = imread("test.jpg", 1); 
Mat inputImage; 
cvtColor(r, inputImage, COLOR_RGB2GRAY); 

は、RGB画像(三次元)です。保存された画像をrで読み込むと、2つのチャンネルがあります。

  1. は、なぜこれが起こる:

    私は2つの質問がありますか?

  2. グレーレベルの1次元画像を作成するにはどうすればよいですか?
+0

「1次元の画像はどうすればいいですか」 - 1ピクセルのラインを意味しますか? – Olaf

+0

実際に私はRGBが3ページあることを意味しました。グレーレベル画像は1ページあります – Media

+1

ですね?ページ?ページはありません。よく使われるフレーズに慣れ親しむことをおすすめしますか?それは、不明な質問をするのではなく、自分でリソースを見つけるのにも役立ちます。 – Olaf

答えて

1

最初の質問については、使用しているカメラ/ハードウェアを確認する必要がありますか?

Mat r = imread("test.jpg", 0); 

Mat r = imread("test.jpg", 1); 

:グレーチャネル、変化として画像を読み取る

cout << img->nChannels << endl; 

を第二の部分について:フレームが実行して2つのチャネルを有する場合にも、確認これを見てください:docs

関連する問題