• 締切済み

ヒストグラムを重ねる方法

円画像を読み込みまして、その画像をヒストグラムに変換し、また別の円画像をヒストグラムに変換し、そして二つのヒストグラムを1つに重ねて合うか?といったものを作ろうとしているんですが、出だしから解らなくて困ってます。大まかに言うと… ・まず円画像をヒストグラムに変換がわからないこと。 ・次に2のヒストグラムを出したものを比べる方法がわからないこと。 この2点のプログラムの書き方が解りません。 私はVisual studio.NET2003を使用しています。 FormデザインにBottonを4つ作り、PictureBoxも4つ作る予定です。 PictureBox4つは、1つ目のBottonを押すと画像を出す。2つ目のBottonを押すとヒストグラムを出す。 3つ目のBottonを押すと別のヒストグラムを出す。4つ目のBottonを押すと2つと3つを重ねる。といった感じにしたいと考えています。 そのプログラムはどういった感じにすればいいでしょうか?

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

何をヒストグラムにしたいかが伝わりません … 円画像の何を数値化したいのでしょう  画像の中心からの円の中心の分布  円の大きさによる分類  円の色による分類 単純な2Dの数値/分布度数のヒストグラムなら そのデータ群を数値範囲をX軸にとって Y軸方向を度数としてDrawLineなどで描画します .NETのGraphicsオブジェクトは重ね合わせをするのが面倒です 2つの画像をR、G、Bの異なる色を選んで描画しておいて この画像のBitmapData(生のARGB)のデータをByte配列などに取り込み お互いをORで演算した結果を取得して この取得したデータから Bitmapオブジェクトを構築 ピクチャーボックスのImageプロパティへ設定 といった具合になると思います

全文を見る
すると、全ての回答が全文表示されます。
  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

> ・まず円画像をヒストグラムに変換がわからないこと。 単純な変換は、出来ないので、何か独自の変換ルールを定義して上げる必要が あるのではないでしょうか。 「3次元ヒストグラムによるカラー量子化とカラー画像の領域分割」 とかそう言う話ですか? ならば、そちらの勉強からした方がよいと思いますけど。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 円のプログラム

    円の中の模様を認識するプログラムを作成しています。 中心点から外側に向かい、色情報を格納していく方法を考えているのですが、 四角の場合では、縦と横だけなのでできたのですが、 円の場合だと角度をつけてみていく方法が解りません。 理論的に三角関数やラジアンなどを使うのは解るのですが、それをどうプログラムにしていくかが解りません。 だれか教えてくれませんか? プログラムの流れでもいいので教えてください。 (できれば詳しく教えてもらうと助かりますが…。) 私が使っているのは、Visual studio .NET2003です。 Formアプリケーションを使っています。 FormにPictureBoxとボタンを2つ作り、ボタンを押すとPictureBoxに円画像が出てき、もう一つのボタンを押すと円画像の中心から線が引けているといったものを作りたいのです。

  • 線を引くには?

    Visual C++ 2003でFormを使用しています。 それでForm[デザイン]にPictureBox作り、そのPictureBoxに線を描きたいのですが、どのようにプログラムを書けばよろしいのでしょうか? 線は直線です。

  • Java RGBヒストグラム

    Javaで読み込んだ画像のRGBヒストグラムをグラフで表示するプログラムの ソースコードをお願いいたします。 いろいろ調べながらやっているのですが、まったくうまくいかない状態です。 できればソースコードをお願いいたします。 理想としてはコンパイルすると画像が表示され「start」などのボタンを押すと、 右下などにRGBを抽出したヒストグラムが表示されるという感じをイメージしております。 よろしくお願いいたします

  • pictureBoxに表示する方法

    始めまして、プログラム作成初心者です。 今、pictureBox1に選択した画像を表示し、ボタンを押すと pictureBox2にpictureBox1の画像を白黒にして表示するプログラムを作成しています。 http://www.bobpowell.net/grayscale.htm のprivate void Form1_Load(object sender, System.EventArgs e) を参考に作ってみようと思っているのですが、 これをpictureBox2に表示するようなプログラムが良くわかりません。 分かられる方、よろしくお願いいたします。

  • 別のフォームでインスタンスを使う

    Visual Studio 2005 のC#でプログラミングをしているのですが、 Form1で作成した、インスタンスを別のフォーム(たとえばForm2)で使う方法がわかりません。 まだ、自分はプログラム歴が浅いですが、よければ御回答をお願いします。

  • 逆ポーランド記法への変換方法を教えてください。

    Visual Studio C++ 6.0で逆ポーランド電卓のプログラムを作っていますが、式の変換方法がわからないので教えていただければ助かります。 たとえば (8 + 9 * -8) * 10 だと 8 9 -8 * + 10 * に変換できますが、  -(8 + 9 * -8) * 10 だとどう変換すればよいのかがわかりません。

  • Visual Basic 2008 Express Edition の「form.vb [デザイン]」の画面

    Visual Basicを始めて使いました。 Visual Basic 2008 Express Editionです。 buttonやLabelなどを付けて、プログラムを書いて、保存しました。 そして一度Visual Basicを閉じて、また起動しました。 そして「最近使ったプロジェクト」でさっき保存したプロジェクトを開いたんですが、「Form1.bv [デザイン]」の画面がありません。 プログラムが書いてある「Form1.bv」の画面は開いています。 ボタンの位置などを変えたいので「Form1.bv [デザイン]」を開きたいのですが、どうやって開くんでしょうか。 教えてください。よろしくお願いします。

  • データベースのレコードをform1で選択し、form2にも関連させたい。

    visual basic 2005 データベースはSQL server で初めてプログラムを開発しています。 form1で、データベースのレコードを選択し、form2に遷移してもそのデータベースのレコードを維持する方法はないでしょうか?  1 りんご あかい  2 みかん おれんじ  3 びわ  きいろ とデータベースがあり、form1には 2 みかん と選択表示させる。bottonを押すとform2に遷移し、おれんじ と表示させたい。でも あかい と表示される。 どんな方法があるのでしょうか?すいませんが初心者でも分かるやり方があれば教えて下さい。  

  • pictureboxの画像を削除するには?

    Visual C# 2008を使用しています。 ボタンを押すとpictureboxに画像が表示されるプログラムを作成しました。 今度は、その表示された画像をクリックし、別のボタンを押すことでその画像が削除できるようにしたいと思っているのですが、うまくプログラムできません。 誰か教えていただけないでしょうか? ソースコードは以下のようになっています。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace algorithm { public partial class Form1 : Form { int space = 10; public Form1() { InitializeComponent(); } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { } private void kihonsyori_Click(object sender, EventArgs e) { if (this.pictureBox1.Image == null) { Bitmap img = new Bitmap(@"C:\Documents and Settings\admin\My Documents\Visual Studio 2008\Projects\algorithm\algorithm\picture\基本処理箱.png"); Graphics g = pictureBox1.CreateGraphics(); g.DrawImage(img, 0, space, 0.4F * img.Width, 0.3F * img.Height); space += 50; img.Dispose(); g.Dispose(); } else { this.pictureBox1.Image.Dispose(); this.pictureBox1.Image = null; } } private void groupBox1_Enter(object sender, EventArgs e) { } private void pictureBox1_Click(object sender, EventArgs e) { } private void hanpuku_Click(object sender, EventArgs e) { if (this.pictureBox1.Image == null) { Bitmap img = new Bitmap(@"C:\Documents and Settings\admin\My Documents\Visual Studio 2008\Projects\algorithm\algorithm\picture\反復箱.png"); Graphics g = pictureBox1.CreateGraphics(); g.DrawImage(img, 0, space, 0.4F * img.Width, 0.3F * img.Height); space += 80; img.Dispose(); g.Dispose(); } else { this.pictureBox1.Image.Dispose(); this.pictureBox1.Image = null; } } private void sentaku_Click(object sender, EventArgs e) { if (this.pictureBox1.Image == null) { Bitmap img = new Bitmap(@"C:\Documents and Settings\admin\My Documents\Visual Studio 2008\Projects\algorithm\algorithm\picture\選択箱.png"); Graphics g = pictureBox1.CreateGraphics(); g.DrawImage(img, 0, space, 0.4F * img.Width, 0.3F * img.Height); space += 80; img.Dispose(); g.Dispose(); } else { this.pictureBox1.Image.Dispose(); this.pictureBox1.Image = null; } } private void sakujyo_Click(object sender, EventArgs e) { pictureBox1.Image = null; space = 0; } } }

  • FormをWordに貼り付ける方法教えてください!

    こんにちわ。 どなたかVisual Basic 6.0で作成したFormをWordに貼り付ける方法知りませんか? Wordに貼り付けるというか画像として表示したいのです。 JPEGやBMPなどの形式に変換する方法などもできることならば 宜しくおねがいします。