gpt4 book ai didi

java - 在处理中重新绘制当前像素周围的选定像素区域

转载 作者:行者123 更新时间:2023-11-30 09:59:07 25 4
gpt4 key购买 nike

我是处理新手。我正在尝试更改每个像素周围像素的颜色(或其他参数,如色调、饱和度等)。

我没有得到任何改变而不是期望的结果。请帮助任何人 (+

PImage imgg;
void setup() {
size(250,166);
imgg = loadImage("input.jpg");
loadPixels();
image(imgg,0,0);
}

void draw() {
for (int i = 0; i < imgg.width; i++) {
for (int j = 0; j < imgg.height; j++) {
//get the brightness value of the current pixel
int Bright_coeff = int(brightness(pixels[j*imgg.width+i]));
//calculate the area around the current pixel
int Bright_dist = Bright_coeff/10 ;
//area around that pixel will update its color
for (int x = 0; x < imgg.width; x++ ){
for (int y = 0; y < imgg.height; y++){
//check if the distance between iterating pixels and current pixel from above cycle is less than Bright_dist
if ( dist(x, y, i, j)<Bright_dist ){
color qwerty = color(random(1,255),random(1,255),random(1,255)) ;
pixels[y*imgg.width+x] = qwerty;
updatePixels();
}else {
updatePixels();
}
}
}
}
}
}

最佳答案

loadPixels()加载当前显示窗口的像素数据。
image() 将图像绘制到窗口后,必须完成 loadPixels :

PImage imgg;
void setup() {
size(128,128);
imgg = loadImage("input.jpg");

image(imgg,0,0);
loadPixels();
}

显示仅在draw() 之后更新一次已被执行。 updatePixels()设置显示窗口的像素数据。在 draw() 结束时执行一次就足够了:

void draw() {

// [...]

updatePixels();
}

关于java - 在处理中重新绘制当前像素周围的选定像素区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59154839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com