я использую обработку, и я пытаюсь вычислить несоответствие из 2 выпрямленных изображений, и для этого мне нужно взять каждый пиксель из левого изображения и выполнить поиск в одной строке из правого изображения и найти аналогичный пиксель, размер изображений 640x480 .
Мне нужно запустить disparityImage(PImage imgL, PImage imgR) в функции draw() и она слишком медленная, функция выполняется за 1-2 секунды, но если я прокомментирую эти строки кода «minD=d;rightX=xr;» из блока if функция выполняется за 3-5 миллисекунд. Я не понимаю, в чем проблема с моим кодом, я пытался выяснить это слишком много часов, но не смог.
void depthImage(PImage imgL, PImage imgR) {
for (int x=0; x<imgL.width; x=x+1) {
for (int y=0; y<imgL.height; y=y+1) {
color imgleft=imgL.get(x,y);
float r1=red(imgleft);
float g1=green(imgleft);
float b1=blue(imgleft);
float minD=Integer.MAX_VALUE;
int rightX=0;
for (int xr=0; xr<imgR.width; xr++) {
color imgright=imgR.get(x,y);
float r2=red(imgright);
float g2=green(imgright);
float b2=blue(imgright);
float d=dist(r1, g1, b1, r2, g2, b2);
if (d<minD) {
minD=d;
rightX=xr;
}
}
}
}
}