# Performance image scanning

## Recommended Posts

Hi,

I'm writing a script that scans images for numberplate edges in different angles. The below script works and picks up the edges in ~2 seconds. I'm curious if I can improve this to find the edges even faster.

real    0m1.917s
user    0m1.767s
sys     0m0.125s

```<?php

use Imagine\Image\Palette\Color\ColorInterface;
use Imagine\Image\PointInterface;
use Imagine\Image\ImageInterface;
use Imagine\Image\Point;

\$topLeft = \$bottomLeft = [99999, 0];
\$topRight = \$bottomRight = [0, 99999];

\$gatherer = function (ColorInterface \$color, PointInterface \$point, ImageInterface \$image) use (&\$topLeft, &\$topRight, &\$bottomLeft, &\$bottomRight) {

if (\$color->getAlpha() == 0) {
return;
}

\$x = \$point->getX();
\$y = \$point->getY();

\$top    = \$image->getColorAt(new Point(\$x, \$y - 1))->isOpaque();
\$bottom = \$image->getColorAt(new Point(\$x, \$y + 1))->isOpaque();
\$left   = \$image->getColorAt(new Point(\$x - 1, \$y))->isOpaque();
\$right  = \$image->getColorAt(new Point(\$x + 1, \$y))->isOpaque();

if (!\$top && !\$left && \$bottom && \$right && \$x < \$topLeft[0]) {
\$topLeft = [\$x, \$y];
}

if (!\$top && !\$right && \$bottom && \$left && \$x > \$topRight[0]) {
\$topRight = [\$x, \$y];
}

if (!\$bottom && !\$left && \$top && \$right && \$x < \$bottomLeft[0]) {
\$bottomLeft = [\$x, \$y];
}

if (!\$bottom && !\$right && \$top && \$left && \$x > \$bottomRight[0]) {
\$bottomRight = [\$x, \$y];
}
};

//\$img = (new \Imagine\Gd\Imagine())->open(__DIR__ . '/numberplate-test.png');
\$img = (new \Imagine\Gd\Imagine())->open(__DIR__ . '/numberplate-test2.png');

for (\$top = 640; \$top < 900; \$top++) {
for (\$left = 340; \$left < 1580; \$left++) {
\$point = new Point(\$left, \$top);

\$gatherer(\$img->getColorAt(\$point), \$point, \$img);
}
}

var_dump(\$topLeft, \$topRight, \$bottomLeft, \$bottomRight);
```

##### Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

×   Pasted as rich text.   Restore formatting

Only 75 emoji are allowed.