<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://purl.org/rss/1.0/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">

  <channel rdf:about="http://mmyb.blog.shinobi.jp/RSS/100/">
    <title>やぶろぐ</title>
    <link>http://mmyb.blog.shinobi.jp/</link>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://mmyb.blog.shinobi.jp/RSS/" />
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />
    <description>自分の勉強した内容（プログラミング等）
に関するメモなどを綴る日記</description>
    <dc:language>ja</dc:language>
    <dc:date>2008-07-17T22:50:59+09:00</dc:date>
    <items>
    <rdf:Seq>
      <rdf:li rdf:resource="http://mmyb.blog.shinobi.jp/java/%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86%E3%81%AE%E8%AA%B2%E9%A1%8C" />
      <rdf:li rdf:resource="http://mmyb.blog.shinobi.jp/java/%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86%E8%AA%B2%E9%A1%8C" />
      <rdf:li rdf:resource="http://mmyb.blog.shinobi.jp/%E3%81%9D%E3%81%AE%E4%BB%96/%E3%81%AF%E3%81%98%E3%82%81%E3%81%BE%E3%81%97%E3%81%A6" />
    </rdf:Seq>
    </items>
  </channel>

  <item rdf:about="http://mmyb.blog.shinobi.jp/java/%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86%E3%81%AE%E8%AA%B2%E9%A1%8C">
    <link>http://mmyb.blog.shinobi.jp/java/%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86%E3%81%AE%E8%AA%B2%E9%A1%8C</link>
    <title>画像処理の課題</title>
    <description>まぁjavaといってもProcessingになるんですが

人間の髪の毛（というか黒い物体）にロックオンカーソル
を合わせると反応するプログラム作ってみました

まぁ課題のためなんですけどね

でもまぁ出来が悪いなぁというのが自分の正直な感想です

ちなみに以下のプログラム

...</description>
    <content:encoded><![CDATA[まぁjavaといってもProcessingになるんですが<br />
<br />
人間の髪の毛（というか黒い物体）にロックオンカーソル<br />
を合わせると反応するプログラム作ってみました<br />
<br />
まぁ課題のためなんですけどね<br />
<br />
でもまぁ出来が悪いなぁというのが自分の正直な感想です<br />
<br />
ちなみに以下のプログラム<br />
<br />
import processing.video.*;<br />
<br />
Capture img;<br />
PImage result;<br />
int label[];<br />
<br />
int cnt = 0;<br />
int label_num;<br />
int L_BASE = 50;<br />
int timer=0;<br />
<br />
float thresh = 30.0;<br />
boolean lockflag;<br />
<br />
void setup(){<br />
  colorMode(RGB);<br />
  size(480, 320);<br />
  img = new Capture(this, width, height, 30);<br />
  result = createImage(width, height, RGB);<br />
  label = new int[width*height];<br />
}  <br />
<br />
<br />
void draw(){<br />
  if (img.available()) {<br />
    img.read();<br />
   <br />
  //二値化<br />
  binalize(img, label);    <br />
  //ラベリング処理<br />
  label_num = labeling(img, label, L_BASE);  <br />
  println(label_num);<br />
  <br />
  <br />
  image(img,0,0);  <br />
  timer++;<br />
    }  <br />
<br />
rectMode(CENTER);<br />
stroke(0,0,255);<br />
line(width/4,0,width/4,height);<br />
line(width*3/4,0,width*3/4,height);<br />
<br />
if(label[width*mouseY+mouseX]>50) lockflag=true;<br />
else lockflag=false;<br />
<br />
PFont ft = loadFont("MS-PGothic-48.vlw");<br />
textFont(ft,40);<br />
if(lockflag==true){<br />
  text("LOCK ON!",20,50);<br />
}else if(lockflag==false)text("LOST",20,50);<br />
<br />
noFill();<br />
if(lockflag==true){<br />
  stroke(255,0,0);<br />
  ellipse(mouseX,mouseY,40,40);<br />
}else if(lockflag==false){<br />
  stroke(0,0,255);<br />
}<br />
ellipse(mouseX,mouseY,20,20);<br />
ellipse(mouseX,mouseY,30,30);<br />
textFont(ft,15);<br />
stroke(0,0,255);<br />
text(""+mouseX+","+mouseY,mouseX+5,mouseY+5);<br />
<br />
<br />
<br />
line(mouseX,0,mouseX,result.width);<br />
line(0,mouseY,result.width,mouseY);<br />
<br />
<br />
if(mousePressed){<br />
  if(lockflag==true){<br />
    textFont(ft,40);<br />
    fill(255,0,0);<br />
    text("HIT!",200,200);<br />
    ellipse(mouseX,mouseY,200,200);<br />
  }else if(lockflag == false){<br />
    textFont(ft,40);<br />
    fill(0,0,255);<br />
    text("MISS!",200,200);<br />
  }<br />
  stroke(0,0,255);<br />
  lockflag = false;<br />
}<br />
<br />
}<br />
<br />
<br />
<br />
<br />
//2値化<br />
void binalize(PImage img_, int[] label_){<br />
  for(int j=0;j<img_.height;j++){<br />
    for(int i=0;i<img_.width;i++){<br />
      if(brightness(img_.get(i,j))<thresh){<br />
         label_[img_.width*j+i] = 1;<br />
      }<br />
      else{<br />
        label_[img_.width*j+i] = 0;<br />
      }<br />
    }<br />
  }<br />
}<br />
<br />
//ラベリング<br />
int labeling(PImage img_, int[] label_, int label_num){<br />
  for(int i=0;i<img_.width*img_.height;i++){<br />
    if(label_[i]==1){<br />
      if(label_num>=img_.width*img_.height){<br />
        println("ERROR!! TOO MANY LABELS.");<br />
      }<br />
      label_[i]=label_num;<br />
      for(;;){<br />
        int cnt=0;<br />
        for(int j=img_.width+1;j<img_.width*(img_.height-1)-1;j++){<br />
          if(label_[j]==label_num){<br />
            if(label_[j+img_.width]==1){<br />
              label_[j+img_.width]=label_num; cnt++;}<br />
            if(label_[j+img_.width-1]==1){<br />
              label_[j+img_.width-1]=label_num; cnt++;}<br />
            if(label_[j-1]==1){<br />
              label_[j-1]=label_num; cnt++;}<br />
            if(label_[j-img_.width-1]==1){<br />
              label_[j-img_.width-1]=label_num; cnt++;}<br />
            if(label_[j-img_.width]==1){<br />
              label_[j-img_.width]=label_num; cnt++;}<br />
            if(label_[j-img_.width+1]==1){<br />
              label_[j-img_.width+1]=label_num; cnt++;}<br />
            if(label_[j+1]==1){<br />
              label_[j+1]=label_num; cnt++;}<br />
            if(label_[j+img_.width+1]==1){<br />
              label_[j+img_.width+1]=label_num; cnt++;}<br />
           }<br />
        }<br />
        if(cnt==0) break;<br />
      }<br />
      label_num++;<br />
    }<br />
  }<br />
  return label_num;<br />
}<br />
<br />
<br />
<br />
ちなみにこれ、ラベリングのところなどは先生が作ったソースのこぴぺなんですよね・・・<br />
<br />
あぁ情けない・・・<br />
]]></content:encoded>
    <dc:subject>java</dc:subject>
    <dc:date>2008-07-17T22:50:59+09:00</dc:date>
    <dc:creator>矢部竜太</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>矢部竜太</dc:rights>
  </item>
  <item rdf:about="http://mmyb.blog.shinobi.jp/java/%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86%E8%AA%B2%E9%A1%8C">
    <link>http://mmyb.blog.shinobi.jp/java/%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86%E8%AA%B2%E9%A1%8C</link>
    <title>画像処理課題</title>
    <description>画像処理の授業で書いているprocessingのソース

画像を分割して、各部分ごとに異なる比率でコンボりゅーションをしようとしているのですが、今のところ上手くいってないんですよね


来週までにどうにかせねば・・・


import processing.video.*;

i...</description>
    <content:encoded><![CDATA[画像処理の授業で書いているprocessingのソース<br />
<br />
画像を分割して、各部分ごとに異なる比率でコンボりゅーションをしようとしているのですが、今のところ上手くいってないんですよね<br />
<br />
<br />
来週までにどうにかせねば・・・<br />
<br />
<br />
import processing.video.*;<br />
<br />
int fream = 3;<br />
int offset = 0;<br />
<br />
<br />
Capture video;<br />
PImage [] img  = new PImage[fream];<br />
PImage result;<br />
<br />
float[][] c_matrix = {{0,-1,0},<br />
                      {0,1,0},<br />
                      {0,0,0}};<br />
<br />
                     <br />
void setup(){<br />
  size(640,480);<br />
  colorMode(RGB);<br />
  video = new Capture(this,width,height,10);<br />
  for(int i=0;i<frame;i++){<br />
    img[i] = createImage(width,height,RGB);<br />
  }<br />
  result = createImage(width,height,RGB);<br />
}<br />
<br />
void draw(){<br />
  if(video.available()){<br />
    offset++;<br />
    if(offset == fream){<br />
      offset=0;<br />
    }<br />
    video.read();<br />
    result.loadPixels();<br />
    for (int y = 0; y < video.height; y++) { <br />
      for (int x = 0; x < video.width; x++) { <br />
        img[offset].pixels[y*video.width + x] = video.pixels[y*video.width + x];<br />
      }<br />
    }<br />
    for (int y = 0; y < video.height; y++) { <br />
      for (int x = 0; x < video.width; x++) { <br />
        float r_sum = 0.0,g_sum = 0.0,b_sum = 0.0;<br />
       for(int w = 0; w< 3;w++){<br />
        for(int h = 0;h < 3;h++){<br />
         int tmp_x = x + h -1;<br />
         int tmp_y = y + w -1;<br />
         int tmp = img[offset].width * tmp_y + tmp_x;<br />
         tmp = constrain(tmp,0,img[offset].pixels.length-1);<br />
         <br />
         r_sum += (red(img.pixels[tmp]) * c_matrix[w][h]);<br />
         g_sum += (green(img.pixels[tmp]) * c_matrix[w][h]);<br />
         b_sum += (blue(img.pixels[tmp]) * c_matrix[w][h]);<br />
        }<br />
       }<br />
       r_sum = constrain(r_sum,0,255);<br />
       g_sum = constrain(g_sum,0,255);<br />
       b_sum = constrain(b_sum,0,255);<br />
       <br />
       color c = color(255-r_sum,255-g_sum,255-b_sum);<br />
       int tmp = x + y * img.width;<br />
       result.pixels[tmp] = c;<br />
       <br />
        if((offset+1+y*frame_num/480)<frame_num) result.pixels[y*video.width + x] = img[offset+1+y*frame_num/480].pixels[y*video.width + x];<br />
        else result.pixels[y*video.width + x] = img[(offset+1+y*frame_num/480)%frame_num].pixels[y*video.width + x];<br />
      }<br />
    }<br />
]]></content:encoded>
    <dc:subject>java</dc:subject>
    <dc:date>2008-07-02T23:30:17+09:00</dc:date>
    <dc:creator>矢部竜太</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>矢部竜太</dc:rights>
  </item>
  <item rdf:about="http://mmyb.blog.shinobi.jp/%E3%81%9D%E3%81%AE%E4%BB%96/%E3%81%AF%E3%81%98%E3%82%81%E3%81%BE%E3%81%97%E3%81%A6">
    <link>http://mmyb.blog.shinobi.jp/%E3%81%9D%E3%81%AE%E4%BB%96/%E3%81%AF%E3%81%98%E3%82%81%E3%81%BE%E3%81%97%E3%81%A6</link>
    <title>はじめまして</title>
    <description>どうも矢部です

ちょっとSunSPOT目当てでブログを解説しまして・・・ｗ

とりあえず学校の課題などが中心になると思いますが

自分の書いたプログラムなどをせっせとアップしていく予定です

たまたま見た方が

「ここをこう直したほうがいいよ」

とかご助言いただけたら幸い...</description>
    <content:encoded><![CDATA[どうも矢部です

ちょっとSunSPOT目当てでブログを解説しまして・・・ｗ

とりあえず学校の課題などが中心になると思いますが

自分の書いたプログラムなどをせっせとアップしていく予定です

たまたま見た方が

「ここをこう直したほうがいいよ」

とかご助言いただけたら幸いです]]></content:encoded>
    <dc:subject>その他</dc:subject>
    <dc:date>2008-07-01T11:21:41+09:00</dc:date>
    <dc:creator>矢部竜太</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>矢部竜太</dc:rights>
  </item>
</rdf:RDF>
