Pixel per pixel info naar bestand

Pagina: 1
Acties:

  • henkleerssen
  • Registratie: December 2000
  • Niet online

henkleerssen

Your life is as you narrate it

Topicstarter
Ik zoek eigenlijk een progje wat voor mij details van elke pixel genereert (RGB waarde of CMYK of whatever formaat) van een willekeurige bimtap plaatje. Deze info zou hij dan als tabel wegschrijven naar een (tekst)bestand (voorbeeld: X: 100, Y=305, R=120,G=21,B=21.. etc.).
Desgewenst zou ik graag een "region of interest" moeten kunnen aangeven (waar het progje zelf de info zou kunnen genereren).

Ik heb het nodig met analyse van bepaalde plaatjes.
Iemand van zo'n progje gehoord?

btw ik ga niet pixel voor pixel in photoshop (met de eyedropper) af wat voor RGB waarde deze hebben... dus das geen optie.

  • Yoozer
  • Registratie: Februari 2001
  • Laatst online: 20-01 22:02

Yoozer

minimoog

hm, dit is eigenlijk meer iets voor P&W, maar in photoshop kun je wel met image > histogram de precieze RGB waarden over de hele image analyseren.

om te doen wat jij wilt moet je dus eigenlijk eerst even het bestandsformaat van een .bmp precies beschreven hebben - een .bmp heeft een header met informatie over de resolutie en het aantal bits per veld. dit kun je eenvoudig doen door een 2 x 2 bitmapje in photoshop of paint te maken (in paint kun je zelfs heel makkelijk de bitrate instellen), en deze dan vervolgens met een hex-editor te analyseren. dan maak je een leuke struct in c met de informatie erin, en dan laat je 3 loopjes om de beurt de R, G, en B component analyseren. dat duw je dan in een array (als je dat wilt), of je zet het gelijk in een grafiek, of zoals je zelf al zei, een tekstbestand.

teveel zooi, te weinig tijd


  • Tim Schuhmacher
  • Registratie: Januari 2000
  • Laatst online: 14:05

Tim Schuhmacher

abasios

Als je dan toch aan het programmeren bent dan kun je volgens mij een image als 2-dimensionaal array zien en er dus in 2 loopjes door heen lopen. Per pixel kun je dan de kleur op vragen.

  • jhksema
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:17
Probeer het eens met de imaging toolbox van matlab. Lees je een plaatje in en heb je direct een matrix met pixel waarden. Kan je vervolgens mee doen wat je wilt...

  • henkleerssen
  • Registratie: December 2000
  • Niet online

henkleerssen

Your life is as you narrate it

Topicstarter
Nou ik zat eigenlijk meer te kijken naar progje die dit standaard zou doen voor me (dus ik ga niet proggen hiervoor).. dus:
input: bitmap bestand, processing: progje, output: tekstbestand met tabel.
Matlab.. tja is een optie... maar dat lijkt me te veel werk.. ook om het onder de knie te krijgen (ben niet zo thuus in matlab).

Verwijderd

Je kan dit ook met php doen (als 't alleen om de output gaat)..
Je moet dan wel op de webserver GD geinstalleerd hebben

check voor een voorbeeldscript:
http://62.250.9.120/library.php?sid=45

Verwijderd

mm dit lijkt me echt een programmeur klus,
ik zou dit denk ik wel kunnen maken in java of c. Of ik daarvoor zin of
tijd heb is iets anders.

Maar dan toch, je hebt toch een coder nodig die dit voor je schrijft,
als je zelf niet kan/wil coden. Ik weet zo niet een programma die dit
simpele ding doet..

Natuurlijk een van de eerste dingen in graphic-coding,
plaatje inlezen, en alle rgb waarden aanpassen etc.

Ik denk dat je in P&W meer mensen krijgt, die je opweg kunnen helpen,
of deze coding challenge aangaan.

een 'erg' oude java tutorial van mij; plaatje laden en 'aanpassen'
http://www.xs4all.nl/~elout/tuto/fast02.html
http://www.xs4all.nl/~elout/tuto/fast02.java (java-source)
(note.. ik moet deze 'dirty' source nogsteeds aanpassen
zodat het ook weer werkt met de laatste java-plugin.)

Deze zou je makkelijk kunnen aanpassen, zodat hij de output naar een textfile schrijft, (mits je hem van je eigen hard-disk runt)
en je natuurlijk java kan coden.

edit:

ik lees weer te snel;

je wil een bmp plaatje omzetten,

andere mogenlijkheid waarmee ik code..
gcc en sdl-lib - (allemaal opensource-ware, gratis te downloaden)

oa. een tutorial;
http://cone3d.gamedev.net...ge=tutorials/ogladv/tut1c

sdl-lib - voor oa. de get-pixel routine.
http://www.libsdl.org/index.php

maar dan moet je toch lekker gaan coden.. :)


  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 13:53

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

http://www.php.net/manual/en/function.imagecolorat.php
imagecolorat
(PHP 3, PHP 4 )

imagecolorat -- Get the index of the color of a pixel
Description
int imagecolorat ( resource image, int x, int y)


Returns the index of the color of the pixel at the specified location in the image specified by image.
Moet je wel php en gd hebben, zoals eerder gezegt. However, ik dacht eigenlijk dat een .bmp dat gewoon zo opsloeg, heb ik dacht ik uit mijn informaticaboek, zal eens even kijken wat dat kreng ervan zegt...

/edit:
Bitmap
Een digitale afbeelding kan in een bestand worden opgeslagen. Er zijn hiervoor diverse formaten. De bitmap is een relatief eenvoudig formaat. Vooraan in het bestand staat algemene informatie waaronder de afmetingen van het beeld, bijvoorbeeld 800 bij 600. Daarna volgen 800 bytes voor de eerste regel pixels, 800 bytes voor de tweede regel pixels enzovoort.
Iets anders dus... Ik zou gaan voor de imagecolorat :)

/edit edit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
    $url = $_GET;
    $imgpath = $url['img'];
    
    $img  = imagecreatefromjpeg ( $imgpath );
    $imgx = imagesx($img);
    $imgy = imagesy($img);
    
    for($y=0; $y<$imgy; $y++){
        for($x=0; $x<$imgx; $x++){
            $color = imagecolorat($img, $x, $y);
            $rgb = imagecolorsforindex ($img, $color);
            echo $rgb['red'].','.
                 $rgb['green'].','.
                 $rgb['blue'].'; ';
        }
        echo "\n";
    }
?>

Dat werkt prima met jpg-tjes :) (opslaan als img.php en dan aanroepen met img.php?img=padnaarplaatje.jpg)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 31-07 15:50
een .tif file slaat per pixel rgb op (4bytes) op, en 256kleuren bmp ook per pixel 3bytes. Alleen dat is geen asci ;-)

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


  • henkleerssen
  • Registratie: December 2000
  • Niet online

henkleerssen

Your life is as you narrate it

Topicstarter
cel-ed> wordt teveel van het goed .. thanks for input though..
Prammenhanger> misschien heb ik hier wat aan... thanks!
djexplo> mm interesting... is het iets ik analyseer bitmap plaatjes (niet bmp plaatje.. is alleen een format), waaronder ook tiffs. Het zou handig zijn dat er juist zoiets was dat juist deze tiff info omzet naar asci..
Pagina: 1