C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.61375 の関連記事表示

<< 0 >>
■61375  RGBの平均値の取得方法について教えて下さい。
□投稿者/ コウ -(2011/08/10(Wed) 22:27:36)

    分類:[C#] 

    はじめまして、C#勉強中のコウと申します。

    画像の解析を行うために、以下の参考URLを拝見し、
    以下のソースを作成しましたが、以下のエラーが発生致しました。

    エラーの原因、及び、対処方法をご存知の方、アドバイス頂けますと幸いです。

    お手数をおかけ致しますが、宜しくお願い致します。

    ■参考URL
    http://msdn.microsoft.com/ja-jp/academic/cc998604

    ■ソース
    private void RGB_CHECK_Click(object sender, EventArgs e)
    {
    int i, j, iAverage; // 変数の宣言 iAverage : RGB 値の平均値
    Bitmap bBitmap = new Bitmap(pictureBox1.Image); // 変数の宣言
    Color cColor;

    // 変数の宣言
    // 画像の 2 値化の実行
    for (i = 0; i < pictureBox1.Image.Width; i++)
    for (j = 0; j < pictureBox1.Image.Height; j++)
    {
    cColor = bBitmap.GetPixel(i, j); // ピクセルの色の取得
    iAverage = GetColorAverage(cColor); // RGBの平均値の取得
    //iAverage = 1; // RGBの平均値の取得

    //ログ出力
    DateTime dt = DateTime.Now;
    Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS");
    File.AppendAllText(@"C:\Test2.txt", dt.ToString("yyyy/MM/dd HH:MM:ss fff"), sjisEnc);
    File.AppendAllText(@"C:\Test2.txt", "\n", sjisEnc);
    File.AppendAllText(@"C:\Test2.txt", " RGB" + iAverage, sjisEnc);

    // RGB 平均値が閾値以下の場合
    //if (iAverage <= iThresh)
    if (iAverage <= 0)
    bBitmap.SetPixel(i, j, Color.White); // 白色に設定
    // RGB 平均値が閾値より大きい場合
    else
    bBitmap.SetPixel(i, j, Color.Black); // 黒色に設定
    }
    pictureBox1.Image = bBitmap; // 結果の表示

    //画像を表示する
    pictureBox1.Image = System.Drawing.Image.FromFile(@"c:\screen.gif");
    }

    ■エラー
    名前 'GetColorAverage' は現在のコンテキスト内に存在しません。

    ■開発環境
    ・WindowsXP
    ・Microsoft Visual C# 2005 Express Edition

親記事 /過去ログ103より / 関連記事表示
削除チェック/

■61378  Re[1]: RGBの平均値の取得方法について教えて下さい。
□投稿者/ 魔界の仮面弁士 -(2011/08/10(Wed) 23:09:26)
    No61375 (コウ さん) に返信
    > ■参考URL
    > http://msdn.microsoft.com/ja-jp/academic/cc998604

    サンプルがダウンロードできるようになっているようですね。
    …あれ、ダウンロードできない?

    恐らく、サンプル中に GetColorAverage の定義が書かれているのでしょうけれども…。


    > iAverage = GetColorAverage(cColor); // RGBの平均値の取得
    > ■エラー
    > 名前 'GetColorAverage' は現在のコンテキスト内に存在しません。

    文字通りの「平均」なら、
     (赤 + 緑 + 青) ÷ 3
    で求めれば良いと思います。

    輝度の意味だとしたら、
     赤×0.29891 + 緑×0.58661 + 青×0.11448
    でしょうか。

    なお「GetColorAverage」で検索したところ、ここの過去ログがヒットしました。
    http://bbs.wankuma.com/index.cgi?mode=al2&namber=7867&KLOG=8
記事No.61375 のレス /過去ログ103より / 関連記事表示
削除チェック/

■61382  Re[2]: RGBの平均値の取得方法について教えて下さい。
□投稿者/ コウ -(2011/08/10(Wed) 23:42:51)
    No61378 (魔界の仮面弁士 さん) に返信

    アドバイスを参考にして出来ました^^
    ありがとうございますm(__)m

    以下のように書き換える事で、対応しました^^

    iAverage = (cColor.R + cColor.R +cColor.R)/3 ; // RGBの平均値の取得

    こういうささいな事でも初心者の私は、2日も悩みに悩み続けました(笑)

    ありがとうございます<(__)>
記事No.61375 のレス / END /過去ログ103より / 関連記事表示
削除チェック/

■61376  Re[1]: RGBの平均値の取得方法について教えて下さい。
□投稿者/ 逆運の覇者 -(2011/08/10(Wed) 22:57:29)
    GetColorAverageメソッドが存在しないから
記事No.61375 のレス /過去ログ103より / 関連記事表示
削除チェック/

■61377  Re[2]: RGBの平均値の取得方法について教えて下さい。
□投稿者/ shu -(2011/08/10(Wed) 23:02:09)
    明るさだからGetBrightness でも使えばいいんじゃないかな?
記事No.61375 のレス /過去ログ103より / 関連記事表示
削除チェック/

■61379  Re[3]: RGBの平均値の取得方法について教えて下さい。
□投稿者/ 逆運の覇者 -(2011/08/10(Wed) 23:26:58)
    今回問題にしてるところではないけど、
    >File.AppendAllText(@"C:\Test2.txt", dt.ToString("yyyy/MM/dd HH:MM:ss fff"), sjisEnc);
    ここで月のところと分のところに同じMMが2回来てるのはどう考えてもおかしいよね。


    あと、ファイル操作。
    1ピクセル調べるたんびにAppendAllText( )を3回読んでるけど
    これじゃ1ピクセル毎にファイルを3回開いて、3回閉じる動作をすることになる。
    動作するのに問題はないだろうけど、
    (あるいは、PCによっては頻繁なHDDアクセスが積もり積もってプログラムが遅くなるかもしれないが)
    こういう書き方は避けたほうがいい。
記事No.61375 のレス /過去ログ103より / 関連記事表示
削除チェック/

■61383  Re[4]: RGBの平均値の取得方法について教えて下さい。
□投稿者/ コウ -(2011/08/10(Wed) 23:45:44)
    No61379 (逆運の覇者 さん) に返信
    File.AppendAllText を記述するたびにファイルを開いて、閉じていたんですね。
    知りませんでした。

    以下のように、書き換えました。
    File.AppendAllText(@"C:\Test2.txt", dt.ToString("yyyy/MM/dd HH:MM:ss fff") + "\n" + " R : " + cColor.R + " G : " + cColor.G + " B : " + cColor.B + " RGB : " + (cColor.R + cColor.R + cColor.R) / 3 + " ", sjisEnc);

    非常に参考になりました。

    ありがとう御座います<(__)>
記事No.61375 のレス /過去ログ103より / 関連記事表示
削除チェック/

■61386  Re[5]: RGBの平均値の取得方法について教えて下さい。
□投稿者/ みきぬ -(2011/08/11(Thu) 09:45:48)
    No61383 (コウ さん) に返信
    > 以下のように、書き換えました。
    > File.AppendAllText(@"C:\Test2.txt", dt.ToString("yyyy/MM/dd HH:MM:ss fff") + "\n" + " R : " + cColor.R + " G : " + cColor.G + " B : " + cColor.B + " RGB : " + (cColor.R + cColor.R + cColor.R) / 3 + " ", sjisEnc);
    >

    × "yyyy/MM/dd HH:MM:ss fff"
    ○ "yyyy/MM/dd HH:mm:ss fff"

    × (cColor.R + cColor.R + cColor.R) / 3
    ○ (cColor.R + cColor.G + cColor.B) / 3

    でわ。
記事No.61375 のレス /過去ログ103より / 関連記事表示
削除チェック/

■61381  Re[3]: RGBの平均値の取得方法について教えて下さい。
□投稿者/ コウ -(2011/08/10(Wed) 23:40:57)
    No61377 (shu さん) に返信
    > 明るさだからGetBrightness でも使えばいいんじゃないかな?

    そういう方法もあるんですね^^
記事No.61375 のレス /過去ログ103より / 関連記事表示
削除チェック/

■61380  Re[2]: RGBの平均値の取得方法について教えて下さい。
□投稿者/ コウ -(2011/08/10(Wed) 23:40:32)
    No61376 (逆運の覇者 さん) に返信
    > GetColorAverageメソッドが存在しないから

    無いのは理解しているのですが、どうすれば良いのかがわかりません(; ̄ー ̄川 アセアセ
記事No.61375 のレス /過去ログ103より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -