import processing.video.*;
Capture video;
PImage frog;
public static final int[][] mask = {{1, 1, 1},
{1, 1, 1},
{1, 1, 1} };
void setup()
{
size(640,480);
video = new Capture(this,640,480);
video.start();
frog = loadImage("frog.jpg");
}
void captureEvent(Capture video){
video.read();
}
void draw()
{
loadPixels();
video.loadPixels();
frog.loadPixels();
for(int x=1;x+1<video.width;x++)
{
for(int y=1;y+1<video.height;y++)
{
int loc = x+y*video.width;
color value = applyBlur(video,x,y,mask);
pixels[loc] = value;
}
}
updatePixels();
}
color applyBlur(Capture video,int x,int y,int[][] mask)
{
int red=0,green=0,blue=0;
for(int j=-1;j<=1;j++)
{
for(int k=-1;k<=1;k++)
{
red += mask[1+j][1+k]*(red(video.get(x+k,y+j)));
green +=mask[1+j][1+k]*(green(video.get(x+k,y+j)));
blue += mask[1+j][1+k]*(blue(video.get(x+k,y+j)));
}
}
red = red/findSum(mask);
green = green/findSum(mask);
blue = blue/findSum(mask);
color value = color(red,green,blue);
return value;
}
int findSum(int[][] mask)
{
int sum=0;
for(int y=0;y<mask.length;y++)
{
for(int x=0;x<mask[y].length;x++)
{
sum += mask[y][x];
}
}
return sum;
}
↧
Blur logic but i don't think its working );
↧