What this?
- JMyronライブラリのretinaImage(), differenceImage(), adaptivity(int value), adapt(), あたりの関数が理解しにくいかったので、サンプルを組んでみました。
- キーボードからadaptivityを変えれるようにしてありますので、適当に弄りながら、だいたいの感覚をつかんでください。
- a : adaptivity を1上げる
- z : adaptivity を1下げる
ScreenShots
- 上が retinaImage() で、下が differenceImage() です。
- adaptibity(20) だとこんな感じ
- adaptibity(5) だとこんな感じ
Downloads
Codes
retinaImage_and_differenceImage.txt
import JMyron.*;
JMyron jmyron; //
int adaptivity = 10;
//?L???v?`???T?C?Y
int capture_size_x = 320;
int capture_size_y = 240;
void setup()
{
//???????\ヲ???????????{?m????
size(capture_size_x, capture_size_y*2);
//?J??????I?u?W?F?N?g??
//?V???C???X?^???X????
jmyron = new JMyron();
//?L???v?`???J?
jmyron.start(capture_size_x, capture_size_y);
//?????daptivity??Z?b?g
ChangeAdaptivity(adaptivity);
println("Myron " + jmyron.version());
}
// ============================================================
// adaptivity??value ???????
// ============================================================
void ChangeAdaptivity(int value)
{
// value ??adaptivity ??Z?b?g
jmyron.adaptivity(value);
jmyron.adapt();
//????daptivity??\ヲ???
println("Change adaptivity : " + adaptivity);
}
// ============================================================
// ?L?[??????????
// ============================================================
void KeyProcess()
{
if(keyPressed) {
switch(key){
case 'a': //a??????daptivity?????
ChangeAdaptivity(++adaptivity);
break;
case 'z': //z??????daptivity??????
ChangeAdaptivity(--adaptivity);
break;
default: //????O????
break;
}
}
if(adaptivity < 0) { // adaptivity ??O??????????O????
adaptivity = 0;
ChangeAdaptivity(adaptivity);
}
}
// ============================================================
// ???C?????[?v
// ============================================================
void draw()
{
//?J?????f????A?b?v?f?[?g
jmyron.update();
//???????
int[] retina_image = jmyron.retinaImage();
int[] difference_image = jmyron.differenceImage();
//?\ヲ????s?N?Z???z?????[?h
loadPixels();
for(int i=0; i<capture_size_x*capture_size_y; i++) {
//?????R?s?[
pixels[i] = retina_image[i];
// retina_image ??????????A????R?s?[
pixels[i+capture_size_x*capture_size_y] = difference_image[i];
}
//?L?[??
KeyProcess();
//?\ヲ????s?N?Z???z???X?V
updatePixels();
}
public void stop(){
jmyron.stop();
super.stop();
}