На данный момент мой код выполняет 2 вещи:
- обнаруживает края и меняет цвет краевых пикселей на белый
- полное сглаживание по Байеру (хотя я думаю, что, возможно, я сделал это немного иначе, чем настоящее сглаживание по Байеру. но это не моя проблема, я в порядке). как это есть, и изучаю это самостоятельно).
До сих пор я пробовал перемещать элементы в функции рисования так, чтобы вся часть изменения ребер происходила в конце функции рисования, а не в начале. Я также попытался добавить оператор if, чтобы любые белые пиксели на img пропускаются при прохождении циклов сглаживания. Может я неправильно загружаю и обновляю пиксели?
Код: Выделить всё
PImage img;
color white= color(255);
color black=color(0);
IntList seed;
int starter=0;
int z=0;
int v= 0;
int gCols=0;
int gRows=0;
int [][]gMatrix;
color light= #e5ffff;
color dark= #333319;
float pRound= 0;
float gRound=0;
void setup (){
size (800,500);
img= loadImage("nosferatu.jpg");
noLoop();
img.loadPixels();
seed= new IntList(0,32,8,40,2,34,10,42,48,16,56,24,50,18,58,26,12,44,4,36,14,46,6,38,60,28,52,20,62,30,54,22,3,35,11,43,1,33,9,41,51,19,59,27,49,17,57,25,15,47,7,39,13,45,5,37,63,31,55,23,61,29,53,21);
for (int k=0; k
Подробнее здесь: [url]https://stackoverflow.com/questions/79838187/how-to-prevent-pixels-from-overwriting-each-other-in-processing[/url]