画像処理について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
クロウ

画像処理について

#1

投稿記事 by クロウ » 16年前

大学の画像処理の授業で出たこの課題に躓いています。
「画像中のランダムに選んだ画素に対し、その画素を中心にエッジの方向と大きさに比例した傾きと大きさの楕円で塗りつぶすプログラムを作成せよ」

現在のところ、「ランダムに選んだ画素を中心に決められた半径の円で塗りつぶす」ところまでは出来ましたが、その先にあるであろう「エッジの方向と大きさに比例した傾きと大きさの楕円」を実装することができません。

「エッジの方向と大きさに比例した傾きと大きさの楕円」について、どうすれば実装できるか丸一日考えてみましたが、結局上手くいかなかったのでここでアドバイスをいただくべく、質問させていただきます。



とりあえず、今現在の「ランダムに選んだ画素を中心に決められた半径の円で塗りつぶす」ところまでのソースコードを挙げておきます。
PImage src;

void setup(){
  size(200, 150);
  src = loadImage("picture.jpg");
}


int r1 = 7;
int r2 = 7;
void draw(){
  int i = int(random(src.width));
  int j = int(random(src.height));
  color c = src.get(i, j); // 画素(i, j)の画素値の取得
  noStroke();
  fill(c);
  ellipse(i, j,r1,r2);
}
コンパイラはprocessingで言語はjavaです。

Dixq (管理人)

Re:画像処理について

#2

投稿記事 by Dixq (管理人) » 16年前

回答でなくてごめんなさい。

「エッジの方向と大きさに比例した傾き」という事がよくわからないので、
その辺の説明を詳しくしていただけると回答が集まるかもしれませんm(_ _;)m

クロウ

Re:画像処理について

#3

投稿記事 by クロウ » 16年前

どうやら、わかりにくかったようです。すみません。
つまり、
「明暗の差を楕円の大きさで表わし、明暗の向きを楕円の傾きで表わす。」
ということです。

例として、ある部分の画素をランダムに選びます。
///////////////////////////////////////////////
//             //             //             //
//(128,128,128)//   (0,0,0)   //(128,128,128)//
//             //             //             //
///////////////////////////////////////////////
//             //             //             //
//(128,128,128)//(255,255,255)//   (0,0,0)   //
//             //             //             //
///////////////////////////////////////////////
//             //             //             //
//(128,128,128)//(255,255,255)//(128,128,128)//
//             //             //             //
///////////////////////////////////////////////
ある画素のRGB値は(255,255,255)となっていたとき、周辺の画素を調べると次のようになっていた場合、

楕円の向きは
(255,255,255)→(0,0,0)、(255,255,255)→(128,128,128)、(255,255,255)→(255,255,255)
となり、(255,255,255)→(0,0,0)の方向には(255,255,255)の大きな楕円
(255,255,255)→(128,128,128)の方向には(255,255,255)の小さな楕円で表わします。
また、(255,255,255)→(255,255,255)の場合は明暗の変化がないので楕円は描かれません。

閉鎖

“C言語何でも質問掲示板” へ戻る