Topic: GD Ieskojimas paveikslelije.

Sveiki,
Ar yra kokiu budu surasti panasu paveiksleli didesniame paveikslelije , na nelabai moku paaiskint.
Noriu si paveiksleli: http://www.part.lt/img/d5ecc54cf8d67387100da8151776d95c232.png
surasti siame:
http://www.part.lt/img/03974d96fae1654437719202627bc1e0587.png

Ar patikrint ar yra kazkas panasaus i 1 paveiksleli antrame.

2 (edited by skuelas 2012-07-25 21:42:19)

Re: GD Ieskojimas paveikslelije.

Kaip speju vienas variantas butu cia su koordinatemis reikia zaisti. Patalpini paveiksliuka kuris yra nuo 0,0 iki 150,150 ir patalpini maza paveiksiula kuris yra kazkurioje vietoje ir jei tinkamje vietoje paklikini kazkas tai vyksta.

EDIT: manau panagrinejes skripta kad ir pirmo google rezultata tikrai suprasi kaip veikia
https://www.google.lt/#hl=lt&sclien … mp;bih=675

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: GD Ieskojimas paveikslelije.

GD tokios funkcijos neturi turėt, čia jau specifiniai algoritmai, bet galima tiek logiškai susiprogramuoti, tiek ieškoti įvairių optimizuotų variantų. Su GD gali tik atlikti reikiamas manipuliacijas su paveiksliukais ir jų duomenimis.

Jeigu tai tik paprastas eksperimentas, ir tikslas yra "išspręsti uždavinį", tai gali daryti brute-force metodu - pasidaryti ieškomo paveiksliuko hash'ą, ir tada ieškomame paveiksliuke pereiti per visas koordinates ir ieškoti būtent tokio pačio dydžio paveiksliuko hash'o.

Jeigu tikslai kažkokie kitokie, tai ir sprendimai turi būti kitokie (-;

Re: GD Ieskojimas paveikslelije.

Galima bandyti ieskoti pagal spalvas, jeigu paveiksliukai tokie paciu spalvu.

<?php
function rgbcode($file) {
    list($width, $height) = getimagesize($file);
    $newimage = imagecreatetruecolor(100,100);
    $image = imagecreatefrompng($file);
    imagecopyresampled($newimage, $image, 0, 0, 0, 0, 100, 100, $width, $height);
    for($x = 1; $x < 100; $x++) {
        for($y = 1; $y < 100; $y++) {
            $search = imagecolorat($newimage, $x, $y);
            $rgb = imagecolorsforindex($newimage, $search);
            $colors[] = "".$rgb['red']."".$rgb['green']."".$rgb['blue']."";
        }
    }
    return $colors;
}

$reaper = rgbcode("paveiksliukas.png");
$reaperis = rgbcode("ieskom.png");

$match = 0;
$nomatch = 0;
for($id = 0; $id <= 9800; $id++) {
    if(in_array($reaperis[$id], $reaper)) {
        $match++;
    } else {
        $nomatch++;
    }
}
$matched = $match/9800 * 100;
$nomatched = $nomatch/9800 * 100;
echo "<span style='color: green;'><b>".number_format($matched, 2)."%</b></span> - <span style='color: red;'><b>".number_format($nomatched, 2)."%</b></span>";

?>