大学4年のyu-tinと申します。現在、大学の研究で使用するためのプログラムとして、以下の機能を持ったプログラム作りに取り込んでいます。1)ビットマップ画像(グレースケール、縦480×横640pixel)を読み込み、その画像の1つ1つの画素の輝度値を表示させる2)読み込んだビットマップ画像を出力させるしかし、作成したプログラムがうまく行きません。以下の3つの問題が発生しています。a)0行0列~1行383列までの画素値がおかしい。なっている)b)出力した画像の最上部2行程度に、細くて黒い線が表示される。(読み込んだ画像と全く同じ画像を出力させたい)c)出力した画像が、”ディスクエラー”によりPhotoshopで開けない。(ペイントでは開ける)その問題のプログラムは、以下の通りです。このプログラムは、他人のプログラムに改良を加えて作成したものです。このプログラム自体、私自身が完璧に理解できていない状況です。私は、プログラミングに関しては初心者に近いので、丁寧に教えて頂けると大変助かります。研究が先に進まず、大変困っています...。みなさま、本当に、本当によろしくお願い致します。//ビットマップ画像に関するプログラム。//画像の表示と輝度値の表示を行う。//ファイルをクローズ}こんにちは。大学4年のyu-tinと申します。現在、大学の研究で使用するためのプログラムとして、以下の機能を持ったプログラム作りに取り込んでいます。1)ビットマップ画像(グレースケール、縦480×横640pixel)を読み込み、その画像の1つ1つの画素の輝度値を表示させる2)読み込んだビットマップ画像を出力させるしかし、作成したプログラムがうまく行きません。以下の3つの問題が発生しています。a)0行0列~1行383列までの画素値がおかしい。ここに処理を書く}という関数が必要なようです。Frameworkのクラスライブラリを使用し、画像処理のプログラムを作成しています。);で、画像を表示するところまではできたのですが、表示したBitmapデータのRGBカラー情報を取得する方法がわからず、困っています。ご存知の方、教えてください。このような情報が載っている書籍やサイトがありましたら、合わせて教えてください。必要な情報が抜けていましたら、お手数ですが、ご指摘お願いします。メソッドのことは忘れてください。いうそのまんまの読取専用のプロパティがありました。いうプロパティにアクセス。Colorオブジェクトが取得できます。利用して、それぞれのRGB値を取得します。いうファイルに書き込むサンプルです。メソッドのことは忘れてください。いうそのまんまの読取専用のプロパティがありました。いうプロパティにアクセス。...続きを読む他の回答も見るQガウシアンフィルタのCプログラム画像を平滑化する手法にガウシアンフィルタというものがあります。現在、このガウシアンフィルタをCで作成しようとしていますが、いまいち分かりません。自分なりに調べてみたところ、平滑化の移動平均フィルタやメディアンフィルタに関しては様々な書籍やサイトがあるのですが、ガウシアンフィルタに関してはあまり見つかりませんでした。行いたい処理は、簡単に次の通りです。処理後の画像をファイル出力ガウシアンフィルタに関して詳しく書いてある書籍やサイトがあればお教え願います。できれば、ソースプログラムも書いてあると助かります。当方、参考書籍として、「C言語で学ぶ実践画像処理-井上他」という本を使用しています。Aベストアンサーググってみたところhttp://teo.sourceforge.jp/doc/TeoProgrammingGuide/section5-2.htmlここが最も分かりやすかったです。f(x,y)=exp(-(x^2+y^2)/(2*sigma^2))で、x,yはそれぞれ整数座標で計算すればよいようです。上webページの説明だと、x,yそれぞれ-1~1の3x3座標、つまり注目座標の9近傍で打ち切っています。その9個のf(x,y)の加算値をaとすると、ゲインが1となるようにf(x,y)/aを用います。(これを正規化と呼びます)他の回答も見るQ画像を読み込む配列の確保。C言語について質問です。画像を読み込む時、その画像の幅、高さを入力し、そのサイズに見合った配列を確保します。その後ファイル名を入力し、配列に読み込むプログラムを作成しました。メインの部分のみ記述します。fp);このように記述し、エラーもなく実行できたのですが、srcをこのまま出力すると変?な画像となって出力されてしまいました。上のように記述した場合、矛盾する場所はあるでしょうか?そして、この方法以外に配列を確保する方法はあるでしょうか?C言語について質問です。画像を読み込む時、その画像の幅、高さを入力し、そのサイズに見合った配列を確保します。その後ファイル名を入力し、配列に読み込むプログラムを作成しました。メインの部分のみ記述します。分のポインタを管理領域と呼んでいません。バイトの領域となります。バイトの領域の先頭に数バイトのメモリ管理情報が存在するのです。・詳しい内部の仕組みは分かりませんが、確保したメモリ領域をリストデータで管理していると思います。リストデータはポインタで次々にデータをチェインしますよね。関数などのメモリ管理情報(領域)として存在するわけです。バイトを使用できます。バイトのメモリを消費します。バイトが管理情報ですが、昔使っていたコンパイラを調べたときのサイズです。今はどれくらいか分かりませんが数バイトはあります。さんのマクロ関数が一番節約できると思います。とアクセスしたいのかと思いましたのでマクロ使用の紹介は控えました。他の回答者さんのお礼にマクロ関数のことがよく分からないとなっていましたね。今回はマクロ関数を利用する方がメモリを節約できます。ポインタ分のメモリは節約できます。『実際のメモリ使用量=メモリ管理情報(領域)+確保サイズ』です。分のポインタを管理領域と呼んでいません。バイトの領域となります。バイトの領域の先頭に数バイトのメモリ管理情報が存在するのです。・詳しい内部の仕組みは分かりませんが、確保したメモリ領域をリストデータで管理していると思います。リ...続きを読む他の回答も見るQBMPファイルの輝度を配列で表すはじめての投稿です。ただいまC++でBMPファイル処理の勉強をしています。わからないところがBMPファイル(480×640)を読み込みその画像の輝度を配列(480×640)でテキストファイルに書き込みたいのですが、途中から配列がずれてしまいます。各ピクセルからRGB値を読み込み輝度yを求めてるのですが、最初にBMPファイルのヘッダーを読み込んでしまってるんでしょうか?どなたかご教授お願いします。プラットフォームはWin32です。以下にソースコードを載せます。fgetc(fpi);y=0.298912*R+0.586611*G+0.114478*B;/*輝度の算出*/fprintf(fpy,"%f,",y);}fprintf(fpy,"\n");}}fclose(fpy);fclose(fpi);}よろしくお願いします。