Augusztus 9., még 122 nap
Történések
Hirtelen ötlettől vezérelve elkezdtem vizsgálni, hogy csak SDL-el meg lehet-e csinálni a kép átalakítását IplImage-ra, ugyanis SDL-nek van SDL_image része is, és már két forrást is találtam ([link], [link]), ami csak SDL-el dolgozik.
Láss csodát, sikerült..., csak RGB-ben kapom meg a pixeleket és át kell alakítani BGR-re, mert IplImage ezt használja. (cvCvtColor(srcimg,destimg,CV_RGB2BGR);)
Balra: SDL képe, jobbra: OpenCV képe, és nincs CxImage, a szín OK
Egyik fenti forrás átalakítva a teszthez
screenshot
Most már az én programom is tudja kezelni a küldött képeket, SDL-el meg is jelenítettem:
Bár a gép támogat 1280x1024-s képet is, sajnos túl nagy, akkora területet nem hajlandó foglalni a C++ . Több dimenzióssá kéne tenni a tömböt, de azt már nem tudom, hogyan tudnám megetetni az SDL-el.
Szerencsére 320x240 felbontást fogom használni az SVS mindkét kameráján.
320x240 és 640x480 maximális minőségen kb. ennyit foglalnak:
Holnap most már tényleg fogom a progit, és elkezdem átalakítani egy rendes oo kódra, ahogy az illik .
Feljegyzések
VS2008 C++ és a sorszámozás
Tools -> Option -> Text Editor -> All Languages -> Display: Line numbers
Alapból miért nincs sorszámozás? Nem értem...
CxImage
Bár már nem kell, de azért leírom, hátha kell még.
A CxImage oldalán található "Lite" verzió is. Sajnos az én esetemben nem működik, mindenképpen szükséges a JPEG támogatás.
Ahhoz, hogy ne kelljen az egészet használni (és linkelgetni), meg kell nyitni a CxImage projektet, a headerek között meg kell keresni a ximacfg.h filet.
Rögtön az elején van a CxImage supported formats rész.
#define CXIMAGE_SUPPORT_JPG 1 kivételével mindet át kell írni 0-ra.
demo és demoDll projekteket törölni kell.
Fordítás, és ezzel kész.
Saját projekt és CxImage
(Ha frissen van letöltve, akkor előbb le kell fordítani külön)
Kódba: #include "ximage.h"
Projekt, tulajdonságok:
C/C++ -> Code Generation -> Runtime library : Multithreaded DLL
C/C++ -> General -> Additional Include Directories: C:\CxImage\CxImage
Linker -> Additional Library Directories: C:\CxImage\jpeg\Debug és C:\CxImage\CxImage\Debug
Linker -> Input -> Additional Dependencies: jpeg.lib és cximage.lib
VAGY
Tools -> Options -> Projects and Solutions -> VC++ Directories
Include Files: Berakni a fentiek közül az include-ost.
Library Files: Berakni a fentiek közül a két library-st.
Így új projektnél nem kell hozzáadni könyvtárakat, csak a két a két .lib-t a linkerbe.
Ha az elején nem szedem ki a JPEG támogatáson kívül mindent, akkor az összes támogatott képformátum könyvtárát és libjét be kell rakosgatni...
Saját projekt és SDL
Kódba:
#include "SDL_net.h"
#include "SDL_image.h"
SDL.h azért nem szükséges, mert az SDL_net.h behívja, de az SDL.lib mindenképpen kell.
Projekt, tulajdonságok:
C/C++ -> Code Generation -> Runtime library : Multithreaded DLL
C/C++ -> General -> Additional Include Directories: C:\sdl\include
Linker -> Additional Library Directories: C:\sdl\lib
Linker -> Input -> Additional Dependencies: SDL.lib, SDL_net.lib, SDL_image.lib és SDLmain.lib
VAGY
Lásd fent, megfelelő könyvtárakat a megfelelő helyre.
SDL.dll, SDL_net.dll, SDL_image.dll és jpeg.dll fileokat be kell másolni a projekt mappába.
OpenCV
Installing OpenCV setting OpenCV 2.10 up with Visual Studio 2008 on Windows
Egyéb
Annyira elvagyok, hogy csináltam egy progit :
( Augusztus 9-ei adásnak vége )