白黒の.bmpを読み取り、各ピクセルの灰色(0〜255)のレベルでヒストグラムを作成するCまたはC++(C言語の設定)でプログラムを実行する必要があります。 私は助けてくれるライブラリを探してみましたが、これまでは何も見つけられず、始まりませんでした。 これで誰もが私を導くことができますか?私はC言語での知識は事実上ありません。これはこの言語で行われなければなりません。 OpenCVとこのImageClass.hライブラリを見たことがありますが、何も助けにはなりません。 私はどのように始めるべきですか、誰かが実際にこれを行うために勉強するのに役立つ資料がありますか?.bmpでの処理
.bmpでの処理
答えて
C++でbmpファイルから個々のピクセルデータを取得するには、ライブラリを使用する方がはるかに簡単です。つまり、stb_imageは、さまざまなイメージファイルを読み込むためのヘッダー専用ライブラリを使用するのが非常に簡単です。しかし、同じことをすることができる他の多くのライブラリがあります(つまり、ウィンドウ上にある場合はCImg、CBitmap、FreeImage、...)。 OpenCVは画像を読み込むことができますが、はるかに複雑なタスクも実行できます。つまり、画像データにさまざまな共通アルゴリズムを適用できます。単純なヒストグラムを計算するだけでは、OpenCVはおそらく過剰です。
配列のような構造のbmpファイルから生のピクセルデータにアクセスできたら、ヒストグラムを計算するのは簡単です:すべてのピクセルをループし、色の値に応じてカウンタを増やすだけです。グレースケール画像の場合は、0(黒色)、255(白色)、またはその間の任意の値になります。ヒストグラムは、すべての可能な色のピクセルの頻度です。
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
int main(int argc, char* argv[]) {
int width, height, bpp;
unsigned char* pixels = stbi_load("grayscale.bmp", &width, &height, &bpp, 1);
int histogram[256] = { 0 };
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
histogram[pixels[x + y * height]]++;
}
}
stbi_image_free(pixels);
return 0;
}
ありがとうございましたOpenCV。あなたが推薦したものを試してみてください。再度、感謝します。 –
@RodrigoDiasよろしくお願いします!答えがあなたに役立つ場合は、回答の左側にあるチェックマークをクリックして、受け入れられた回答としてマークしてください。ありがとうございました! – Constantin
- 1. NASM:int64ビットアセンブリを使って基本bmpファイルを作成/処理する方法は?
- 2. C#でのキー処理の処理
- 3. ビジュアルスタジオでの処理例外の処理
- 4. 処理スケッチをタブで処理中JS
- 5. Cでbmp画像を反転するコードを理解する
- 6. エラー処理と対象処理の例外処理の比較
- 7. CXFリクエストの前処理と後処理の処理
- 8. 複数のプロセスの処理の処理
- 9. tomcatでの処理
- 10. キュー:リッスンタイムアウト処理キュー処理
- 11. 処理(反復処理)
- 12. RailsでのCSVアップロードでのバッチ処理とエラー処理
- 13. Javaでのイベント処理C#でのイベント処理
- 14. 'influxdb.resultset.ResultSet'の流入db処理の処理
- 15. 未処理のURLエラーの処理
- 16. Entity Frameworkの並行処理の処理
- 17. Alexa lambda関数の処理がデフォルトで未処理ですか?
- 18. カフカ:同期処理の並列処理
- 19. ストリーム処理とメッセージ処理の違い
- 20. Windowsアプリケーションの処理終了処理
- 21. BizTalk Server 2013エラー処理の処理
- 22. スパークストリーミング処理の並列処理
- 23. Perlでのクエリ文字列のユニコード処理の処理
- 24. bmpファイルの比較?
- 25. Javaアノテーション処理 - すでに処理されたコードを処理する方法?
- 26. PythonベースのWebアプリケーションでの同時処理処理
- 27. Matlabでの同時UDP DatagramReceivedFcn処理の処理
- 28. React-Redux:マップ処理内でのイベント処理の受け渡し
- 29. ブラウザのイベントを処理し、イベントループの処理が1つのスレッドで処理されるのですか?
- 30. Cでのファイル処理の理解
ようこそスタックオーバーフロー。 [The Tour](http://stackoverflow.com/tour)を読み、[ヘルプセンター](http://stackoverflow.com/help/asking)の資料を参考にしてください。ここに聞いてください。 –
この種の質問は明示的に_off-topic_ここにあります。この[ヘルプセンターの記事](http://stackoverflow.com/help/on-topic)からポイント4を読んでください。 –
ヒント: 'int freq [256];' – user4581301