2016-12-15 6 views
1

私はOpenCVを調べ始めました。私はいくつかの同様の質問を見てきましたが、私は答えが役に立たないことを知りませんでした。私は50の幅と50の高さ(親指の爪のサイズ)のピクセルの寸法を持つ画像の数を持っています。opencvを使用して画像のスケールを拡大し、解像度を最大化する?

私は、次のについて少し困惑している:これらのイメージの規模を増加させることにより

Q.は、私は自動的に解像度を上げるのですか?あるいは、別の機能を実行する必要がありますか?

画像のスケールを拡大しながら最大限の解像度を得ることが不可欠です。

私は、以下の機能を使用しています:

int IncreaseScale() 
{ 
    char *image_name {"./image/my_image.jpg"}; 
    cv::Mat Image; 
    Image = cv::imread(image_name, 1); 
    if(!Image.data) 
    { 
    //Cant find image 
    return 0; 
    } 
    const float rescale_value {4.10}; 
    cv::Mat Image2; 
    cv::resize(Image, Image2, cvSize(0, 0), rescale_value, rescale_value); 
    return 1; 
} 
+1

両方のディメンションで2の倍率でサイズを変更しているとします。ピクセルの1/4の実際の値しか知りません。残りのものの値を_guess_する必要があります。これは_interpolation_と呼ばれます。異なる種類の補間を行うことができます。この補間は、サイズ変更関数の最後のパラメータとして選択できます。そう、いいえ。あなたは解決策を増やしていません...穴を開けることができます。 – Miki

+0

ありがとう@Miki - 解像度を上げるために使用できるテクニックはありますか? –

答えて

2

ここで人々が前に述べたように、画像のサイズを大きくすると補間は非常に制限されます。以前の解像度のピクセルを使用して、画像の解像度を上げたときにその値が何かを推測しています。画像は高解像度になりますが、画質はあまり良くありません。

これを克服するために提案された1つの手法は、super resolutionのアイデアです。このアイデアは、シーンを見るときに、異なる視点から見たいくつかの異なる画像を撮るということです。各画像は、他の画像が以前に見たことのない情報に若干の違いがあります。それぞれの視点についてユニークなものを決定し、これらの情報を組み合わせて、より質の高い画像のエンハンスストリームを作成します。残念なことに、画像のストリームから抽出する追加の情報がないため、単一の画像では機能しません。しかし、ですが、同じ視点の複数の画像を使用してください。カメラセンサに導入されるノイズプロファイルは、高品質のアップスケールされた画像を生成するために超解像アルゴリズムに異なる情報を提供するのに十分でなければならない。実際、超解像度のアイデアは、「低品質」である複数の画像を取得し、それらの情報を組み合わせて最終画像にすることによって高品質の結果を作り出すことです。このアイデアは、画像処理だけでなく、顕微鏡のさまざまな分野や科学のイメージングに関連しています。

画像を1つだけ使用すると、人工的に超解像度画像が作成されるため、画像によっては機能しない場合もあります。画像のストリームを持つことは、成功の確率が高くなります。幸いにも、OpenCVにはSuper Resolutionを実装したモジュールがあり、Super Resolution moduleにあります。あなたdoは一連の画像を供給する必要があり、出力は望むより高い解像度でより高品質の一連の画像になります。

Super Resolutionモジュールの使用方法に関するコード例は、OpenCVのGithubレポ:https://github.com/opencv/opencv/blob/master/samples/gpu/super_resolution.cppにあります。ソースがどこにあるかにだまされてはいけません。 GPUの例の下に置かれていますが、コードはifステートメントで見られるように、CPUとGPUの両方のケースを処理するように設計されています。コードは単にビデオフィードを取り込み、望ましい解像度で、超解像度ベースの結果を出力します。

1

はい、このコードは、効果的に4.1xの「デジタルズーム」をやっているので、出力画像は解像度205 X 205、またはそのような何かを持っている必要があります。指定しなかった場合、サイズ変更はアップサンプリングにbilinear interpolationを使用します。結果はより高い解像度を有するが、元の低解像度画像よりも鮮明ではない。

関連する問題