[ptx] hugin build with the latest wxWindows, vigra and fftw

Wolfgang Goetz wolfgang.ztoeg at web.de
Thu Jan 15 21:09:00 GMT 2004


Hi,

I´ve heard about hugin in de.rec.fotografie,
which leads to a weekend in front of my PC :).


Compiling the xrc extension with the mentioned wxGtk/wxWindows
releases fails. This thing is definitly broken!

**The cvs version is fully functional, but it's a 2.5 based...


therefore i applied changes to hugin:

1) the (depreciated) gaga.ConvertToBitmap() is discarted in
wxWindows! -> use wxBitmap(gaga)  see annex (A)
(Compatibility to 2.4 is default, i tried 2.2 w/o success.)

2) there is no Clear() method for wxCheckBox
I commented this out just to get it compiled. see annex (B)

3) the BeforeFirst(' ') doesn't compile. (but it's classmember ??)
I commented this out. see annex (C)

4) tell configure about xrc and vigra
see annex (D)


applying this 'hugin' itself works. :)

..and my second pano was a 360 degree out of 16 pictures
from my DimageXT..
just to learn how to set the angle:
it's 47 degrees in the wide-angle position.
and set the whitebalance manually.
exposure is always auto. (sigh)
it's just a p&s always-with-me camera.

but there's a 35mm and 6x7 'analog' .. we will see

conclusion:
funny,
	amazing,
			*gimmemoretime*



next are the new tools nona and autopano:

1) nona compiles ->nona.o

2) autopano fails see annex (E)
--> vigra doesnt recognize the new fftw!
vigra: configure:
checking for libfftw ... not found in /usr/local/lib ....

but:
/usr/local/lib/libfftw3.a
/usr/local/lib/libfftw3.la


have fun
Wolfgang

-----------------------------------------------------------

VERSIONS------------
hugin_2004_01_02-22_02.tgz

wx-cvs-20040111.tar.bz2
wx-config  --version :  2.5.1

vigra1.2.0.tar.gz
vigra-config --version: 1.2.0

fftw-3.0.1.tar.gz

panorama-tools-2.6bml12-2.src.rpm

gtk-config --version 1.2.10
gcc version 3.3 20030226 (prerelease) (SuSE Linux)

ximian-desktop2 (gnome2.2?)



ANNEX A------------
src/PanoImage/mainframe.cpp:252:
	wxBitmap bmp = wxBitmap(p); //WGoetz
src/PanoImage/mainframe.cpp:269:
         p = bmp.ConvertToImage(); //WGoetz
src/PanoImage/panoviewer.cpp:58:
	control = wxBitmap(p); //WGoetz
src/PanoImage/panoviewer.cpp:235:
	currentViewBmp = wxBitmap(fastView); //WGoetz
src/PanoImage/panoviewer.cpp:239:
	currentViewBmp = wxBitmap(goodView); //WGoetz
src/hugin/CPImageCtrl.cpp:301:
	bitmap = wxBitmap(img); //WGoetz
src/hugin/CPImageCtrl.cpp:309:
	bitmap = wxBitmap(img->Scale(imageSize.GetWidth(),    //WGoetz
src/hugin/CPImageCtrl.cpp:310:
	imageSize.GetHeight())); //WGoetz
src/hugin/ImageCenter.cpp:172:
	c_img = wxBitmap(img.Scale (new_width, new_height)); //WGoetz
src/hugin/ImageCenter.cpp:177:
	dirty_img = wxBitmap(c_img.ConvertToImage()); //WGoetz
src/hugin/ImageOrientationPanel.cpp:293:
	m_bitmap = wxBitmap(img->Scale((int) floor(m_scaleFactor *
	m_imageSize.GetWidth()),  //WGoetz
src/hugin/ImageOrientationPanel.cpp:294:
	(int) floor(m_scaleFactor * m_imageSize.GetHeight()))); //WGoetz
src/hugin/ImagesList.cpp:153:
	bitmap = wxBitmap(img); //WGoetz
src/hugin/ImagesPanel.cpp:370:
	imgctrl->SetBitmap(wxBitmap(scaled)); //WGoetz
src/hugin/PreviewPanel.cpp:198:
	*(m_remappedBitmaps[*it]) = wxBitmap(timg); //WGoetz

ANNEX B------------
src/hugin/ImageOrientationPanel.cpp:271:
	//WGoetz not ex in this class:    Clear();

src/hugin/LensPanel.cpp:444-449:
	//WGoetz  XRCCTRL(*this, "lens_inherit_?", wxCheckBox)->Clear();

ANNEX C------------
src/hugin/RunOptimizerFrame.cpp:192:
	wxString t2 = line.substr(t+2);//.BeforeFirst(' '); WGoetz TBC


ANNEX D------------
configure:79:
	$XRC_LFLAGS="-lwx_gtk_xrc-2.5";  # WGoetz 2.4->2.5
configure:83:
	my $VIGRA_VERSION=`../vigra1.2.0/bin/vigra-config --version`;


ANNEX E------------
     ---- Compiling autopano.cpp (C++)
g++ -I. -I../include -Wall -O2 -I/home/goetz/mySoft/vigra1.2.0/include 
  -c -o .obj/autopano.o autopano.cpp
In file included from autopano.cpp:34:
../include/vigra_ext/PhaseCorrelation.h: In function `float
    vigra_ext::rhei(double (*)[2], int, int, int, int)':
../include/vigra_ext/PhaseCorrelation.h:53: error: request for member 
`re' in `
    *(data + (+(dpos * 16)))', which is of non-class type `double[2]'
../include/vigra_ext/PhaseCorrelation.h: At global scope:
../include/vigra_ext/PhaseCorrelation.h:84: error: type specifier 
omitted for
    parameter `fftwnd_plan'
../include/vigra_ext/PhaseCorrelation.h:84: error: parse error before 
`,' token
../include/vigra_ext/PhaseCorrelation.h: In function `
    vigra_ext::CorrelationResult vigra_ext::phase(...)':
../include/vigra_ext/PhaseCorrelation.h:101: error: `nx' undeclared 
(first use
    this function)
../include/vigra_ext/PhaseCorrelation.h:101: error: (Each undeclared 
identifier
    is reported only once for each function it appears in.)
../include/vigra_ext/PhaseCorrelation.h:101: error: `ny' undeclared 
(first use
    this function)
../include/vigra_ext/PhaseCorrelation.h:110: error: `F1' undeclared 
(first use
    this function)
../include/vigra_ext/PhaseCorrelation.h:110: error: `F2' undeclared 
(first use
    this function)
../include/vigra_ext/PhaseCorrelation.h:130: error: `pinv' undeclared (first
    use this function)
../include/vigra_ext/PhaseCorrelation.h:130: error: `fftwnd_one' undeclared
    (first use this function)
../include/vigra_ext/PhaseCorrelation.h:139: error: request for member 
`re' in
    `*(pcs + (+(dpos * 16)))', which is of non-class type `double[2]'
../include/vigra_ext/PhaseCorrelation.h:139: error: request for member 
`re' in
    `*(pcs + (+(dpos * 16)))', which is of non-class type `double[2]'
../include/vigra_ext/PhaseCorrelation.h:140: error: request for member 
`im' in
    `*(pcs + (+(dpos * 16)))', which is of non-class type `double[2]'
../include/vigra_ext/PhaseCorrelation.h:140: error: request for member 
`im' in
    `*(pcs + (+(dpos * 16)))', which is of non-class type `double[2]'
../include/vigra_ext/PhaseCorrelation.h:145: error: `filename' undeclared
    (first use this function)
../include/vigra_ext/PhaseCorrelation.h:158: error: request for member 
`re' in
    `*(pcs + (+(dpos * 16)))', which is of non-class type `double[2]'
../include/vigra_ext/PhaseCorrelation.h:158: error: request for member 
`im' in
    `*(pcs + (+(dpos * 16)))', which is of non-class type `double[2]'
../include/vigra_ext/PhaseCorrelation.h:171: error: request for member 
`re' in
    `*(pcs + (+(dpos * 16)))', which is of non-class type `double[2]'
../include/vigra_ext/PhaseCorrelation.h: At global scope:
../include/vigra_ext/PhaseCorrelation.h:376: error: type specifier 
omitted for
    parameter `fftwnd_plan'
../include/vigra_ext/PhaseCorrelation.h:376: error: parse error before `,'
    token
autopano.cpp: In function `int main(int, char**)':
autopano.cpp:231: error: `fftwnd_plan' undeclared (first use this function)
autopano.cpp:231: error: parse error before `,' token
autopano.cpp:232: error: `fftw_p' undeclared (first use this function)
autopano.cpp:232: error: `fftw2d_create_plan' undeclared (first use this
    function)
autopano.cpp:233: error: `fftw_pinv' undeclared (first use this function)
autopano.cpp:383: error: `fftwnd_destroy_plan' undeclared (first use this
    function)
make: *** [.obj/autopano.o] Fehler 1



-- 
Wolfgang Goetz


More information about the ptX mailing list