10.3-RELEASE-p7 FreeBSD 10.3-RELEASE-p7 #0: Thu Aug 11 18:38:15 UTC 2016 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 hugin crashes when attempting to align images using the simple interface. hugin NewZealand_2187[A-B]*.jpg (hugin:31624): Gtk-CRITICAL **: IA__gtk_widget_set_size_request: assertion 'height >= -1' failed ... /usr/local/share/hugin/data/plugins/crop_cp.py CAT:Control Points NAM:Crop Control Points fails @api-max /usr/local/share/hugin/data/plugins/shooting_pattern.py CAT:initial distribution NAM:6-1-1 Shooting Pattern /usr/local/share/hugin/data/plugins/top_five.py CAT:Control Points NAM:keep 5 CPs per image pair /usr/local/share/hugin/data/plugins/woa.py CAT:Control Points NAM:Warped Overlap Analysis fails @api-max **** align button clicked here **** (hugin:31624): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width 0 and height -18 (hugin:31624): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 10 /usr/local/include/wx-3.0/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNo rmalizer(): format specifier doesn't match argument type backtrace: 1] wxString wxString::Format<unsigned long>(wxFormatString const&, unsigned long) [2] wxGenericListCtrl::wxGenericListCtrl() [3] wxEventFunctorMethod<wxEventTypeTag<wxPaintEvent>, wxEvtHandler, wxEvent, wxEvtHandler>::GetEvtMethod() const [4] main
As far as I can tell, this is because one of the images is empty. Could you please check the sizes and the integrity of the images. If they're OK, please attach them to this problem report. You haven't explained why this should affect many people. Until proof of the contrary, I've changed it to "Affects Only Me".
Created attachment 176883 [details] files These are reduced versions of the original files that failed. They were reduced using gimp. When loaded, hugin will complain about no field of view info; that complaint does not appear when using the original files. In any case, using the simple interface, the error occurs when "Align" is clicked. Original files are unmodified output from an Olympus EM5 camera. Pano was created successfully using same images under fbsd 9.2 and hugin generated from ports some time ago.
Created attachment 176886 [details] Hugin output from reduced test images
In general it's a good idea to supply the original images in a matter like this, since it could depend on them. In particular, as you note, GIMP mutilates the EXIF data (specifically the crop factor). That's the reason for the popup. On the other hand, I see that Bugzilla won't accept file larger than 1 MB. I have tried stitching this panorama, and it works perfectly, both with the Simple and the Expert interface. I'm attaching the result. Did you try to align with these reduced images? Also, could you please confirm that you are using the current Hugin port. Help/About should show version 2016.2.0.be8da0221960. If all this tallies, and you're still having trouble with the original images, please supply the original images out of band; if you don't have anywhere you can put them, send me email and I'll work something out. It would also be a good idea to try alignment with the Expert interface, though don't expect that to make any difference.
The 1MB restriction on uploads is the reason for the reduced images. Originals here: http://www.dreamchaser.org/uploads Yes, I tried aligning the reduced images and had the same problem: /usr/local/include/wx-3.0/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type hugin version: 2016.2.0.be8da0221960, same If it works for you, perhaps it is a library issue. Here's what I've got: $ ldd /usr/local/bin/hugin /usr/local/bin/hugin: libpano13.so.3 => /usr/local/lib/libpano13.so.3 (0x800aab000) libGLEW.so.1 => /usr/local/lib/libGLEW.so.1 (0x800d27000) libboost_filesystem.so.1.55.0 => /usr/local/lib/libboost_filesystem.so.1.55.0 (0x800fc5000) libboost_system.so.1.55.0 => /usr/local/lib/libboost_system.so.1.55.0 (0x8011da000) libfftw3.so.3 => /usr/local/lib/libfftw3.so.3 (0x8013dd000) libvigraimpex.so.5 => /usr/local/lib/libvigraimpex.so.5 (0x801742000) libImath-2_2.so.12 => /usr/local/lib/libImath-2_2.so.12 (0x8019cf000) libIlmImf-2_2.so.22 => /usr/local/lib/libIlmImf-2_2.so.22 (0x801c00000) libIex-2_2.so.12 => /usr/local/lib/libIex-2_2.so.12 (0x802104000) libHalf.so.12 => /usr/local/lib/libHalf.so.12 (0x802318000) libIlmThread-2_2.so.12 => /usr/local/lib/libIlmThread-2_2.so.12 (0x80255b000) libjpeg.so.8 => /usr/local/lib/libjpeg.so.8 (0x802761000) libtiff.so.5 => /usr/local/lib/libtiff.so.5 (0x8029cc000) libpng16.so.16 => /usr/local/lib/libpng16.so.16 (0x802c3e000) libz.so.6 => /lib/libz.so.6 (0x802e74000) libexiv2.so.14 => /usr/local/lib/libexiv2.so.14 (0x803200000) liblcms2.so.2 => /usr/local/lib/liblcms2.so.2 (0x80371f000) libceleste.so.0.0 => /usr/local/lib/hugin/libceleste.so.0.0 (0x803978000) libicpfindlib.so.0.0 => /usr/local/lib/hugin/libicpfindlib.so.0.0 (0x803b9d000) libwx_baseu-3.0.so.0 => /usr/local/lib/libwx_baseu-3.0.so.0 (0x803e00000) libwx_gtk2u_core-3.0.so.0 => /usr/local/lib/libwx_gtk2u_core-3.0.so.0 (0x804400000) libwx_gtk2u_aui-3.0.so.0 => /usr/local/lib/libwx_gtk2u_aui-3.0.so.0 (0x804bde000) libwx_gtk2u_xrc-3.0.so.0 => /usr/local/lib/libwx_gtk2u_xrc-3.0.so.0 (0x804e77000) libwx_gtk2u_html-3.0.so.0 => /usr/local/lib/libwx_gtk2u_html-3.0.so.0 (0x80513a000) libwx_baseu_xml-3.0.so.0 => /usr/local/lib/libwx_baseu_xml-3.0.so.0 (0x80540a000) libwx_gtk2u_adv-3.0.so.0 => /usr/local/lib/libwx_gtk2u_adv-3.0.so.0 (0x805617000) libwx_gtk2u_gl-3.0.so.0 => /usr/local/lib/libwx_gtk2u_gl-3.0.so.0 (0x8059dc000) libwx_baseu_net-3.0.so.0 => /usr/local/lib/libwx_baseu_net-3.0.so.0 (0x805bf2000) libwx_gtk2u_qa-3.0.so.0 => /usr/local/lib/libwx_gtk2u_qa-3.0.so.0 (0x805e31000) libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x80605a000) libGL.so.1 => /usr/local/lib/libGL.so.1 (0x8062dc000) libhuginbasewx.so.0.0 => /usr/local/lib/hugin/libhuginbasewx.so.0.0 (0x806555000) libhugin_python_interface.so.0.0 => /usr/local/lib/hugin/libhugin_python_interface.so.0.0 (0x806847000) libhuginbase.so.0.0 => /usr/local/lib/hugin/libhuginbase.so.0.0 (0x806c00000) libX11.so.6 => /usr/local/lib/libX11.so.6 (0x80742f000) libsqlite3.so.0 => /usr/local/lib/libsqlite3.so.0 (0x807767000) libpython2.7.so.1 => /usr/local/lib/libpython2.7.so.1 (0x807a22000) libc++.so.1 => /usr/lib/libc++.so.1 (0x807df6000) libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x8080b5000) libm.so.5 => /lib/libm.so.5 (0x8082d2000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x8084fb000) libthr.so.3 => /lib/libthr.so.3 (0x808709000) libc.so.7 => /lib/libc.so.7 (0x80892e000) libhdf5.so.100 => /usr/local/lib/libhdf5.so.100 (0x808e00000) libhdf5_hl.so.100 => /usr/local/lib/libhdf5_hl.so.100 (0x80933d000) libIexMath-2_2.so.12 => /usr/local/lib/libIexMath-2_2.so.12 (0x80955f000) liblzma.so.5 => /usr/lib/liblzma.so.5 (0x809762000) libjbig.so.2 => /usr/local/lib/libjbig.so.2 (0x80998b000) libexpat.so.1 => /usr/local/lib/libexpat.so.1 (0x809b98000) libexecinfo.so.1 => /usr/lib/libexecinfo.so.1 (0x809dbf000) libgtk-x11-2.0.so.0 => /usr/local/lib/libgtk-x11-2.0.so.0 (0x80a000000) libgdk-x11-2.0.so.0 => /usr/local/lib/libgdk-x11-2.0.so.0 (0x80a62f000) libpangocairo-1.0.so.0 => /usr/local/lib/libpangocairo-1.0.so.0 (0x80a8df000) libatk-1.0.so.0 => /usr/local/lib/libatk-1.0.so.0 (0x80aaec000) libcairo.so.2 => /usr/local/lib/libcairo.so.2 (0x80ad15000) libgdk_pixbuf-2.0.so.0 => /usr/local/lib/libgdk_pixbuf-2.0.so.0 (0x80b02b000) libgio-2.0.so.0 => /usr/local/lib/libgio-2.0.so.0 (0x80b24a000) libpangoft2-1.0.so.0 => /usr/local/lib/libpangoft2-1.0.so.0 (0x80b5b5000) libpango-1.0.so.0 => /usr/local/lib/libpango-1.0.so.0 (0x80b7ca000) libgobject-2.0.so.0 => /usr/local/lib/libgobject-2.0.so.0 (0x80ba19000) libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1 (0x80bc61000) libfreetype.so.6 => /usr/local/lib/libfreetype.so.6 (0x80bea6000) libgthread-2.0.so.0 => /usr/local/lib/libgthread-2.0.so.0 (0x80c148000) libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0x80c349000) libintl.so.8 => /usr/local/lib/libintl.so.8 (0x80c64f000) libXxf86vm.so.1 => /usr/local/lib/libXxf86vm.so.1 (0x80c85a000) libSM.so.6 => /usr/local/lib/libSM.so.6 (0x80ca5e000) libnotify.so.4 => /usr/local/lib/libnotify.so.4 (0x80cc65000) libwebkitgtk-1.0.so.0 => /usr/local/lib/libwebkitgtk-1.0.so.0 (0x80d000000) libsoup-2.4.so.1 => /usr/local/lib/libsoup-2.4.so.1 (0x80f17f000) libjavascriptcoregtk-1.0.so.0 => /usr/local/lib/libjavascriptcoregtk-1.0.so.0 (0x80f600000) libglapi.so.0 => /usr/local/lib/libglapi.so.0 (0x80fe02000) libXext.so.6 => /usr/local/lib/libXext.so.6 (0x81006b000) libXdamage.so.1 => /usr/local/lib/libXdamage.so.1 (0x81027c000) libXfixes.so.3 => /usr/local/lib/libXfixes.so.3 (0x81047e000) libX11-xcb.so.1 => /usr/local/lib/libX11-xcb.so.1 (0x810683000) libxcb.so.1 => /usr/local/lib/libxcb.so.1 (0x810884000) libxcb-glx.so.0 => /usr/local/lib/libxcb-glx.so.0 (0x810aa9000) libxcb-dri2.so.0 => /usr/local/lib/libxcb-dri2.so.0 (0x810cc2000) libdrm.so.2 => /usr/local/lib/libdrm.so.2 (0x810ec6000) libutil.so.9 => /lib/libutil.so.9 (0x8110d3000) libelf.so.1 => /usr/lib/libelf.so.1 (0x8112e6000) libXrender.so.1 => /usr/local/lib/libXrender.so.1 (0x8114fb000) libXinerama.so.1 => /usr/local/lib/libXinerama.so.1 (0x811704000) libXi.so.6 => /usr/local/lib/libXi.so.6 (0x811906000) libXrandr.so.2 => /usr/local/lib/libXrandr.so.2 (0x811b14000) libXcursor.so.1 => /usr/local/lib/libXcursor.so.1 (0x811d1d000) libgmodule-2.0.so.0 => /usr/local/lib/libgmodule-2.0.so.0 (0x811f27000) libXcomposite.so.1 => /usr/local/lib/libXcomposite.so.1 (0x81212a000) libharfbuzz.so.0 => /usr/local/lib/libharfbuzz.so.0 (0x81232c000) libpixman-1.so.0 => /usr/local/lib/libpixman-1.so.0 (0x812586000) libEGL.so.1 => /usr/local/lib/libEGL.so.1 (0x81282a000) libxcb-shm.so.0 => /usr/local/lib/libxcb-shm.so.0 (0x812a46000) libxcb-render.so.0 => /usr/local/lib/libxcb-render.so.0 (0x812c48000) libffi.so.6 => /usr/local/lib/libffi.so.6 (0x812e54000) libbz2.so.4 => /usr/lib/libbz2.so.4 (0x81305b000) libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x81326d000) libpcre.so.1 => /usr/local/lib/libpcre.so.1 (0x813567000) libICE.so.6 => /usr/local/lib/libICE.so.6 (0x8137e0000) libenchant.so.1 => /usr/local/lib/libenchant.so.1 (0x8139fb000) libharfbuzz-icu.so.0 => /usr/local/lib/libharfbuzz-icu.so.0 (0x813c05000) libgstapp-1.0.so.0 => /usr/local/lib/libgstapp-1.0.so.0 (0x813e07000) libgstaudio-1.0.so.0 => /usr/local/lib/libgstaudio-1.0.so.0 (0x814013000) libgstfft-1.0.so.0 => /usr/local/lib/libgstfft-1.0.so.0 (0x81426e000) libgstpbutils-1.0.so.0 => /usr/local/lib/libgstpbutils-1.0.so.0 (0x814477000) libgstvideo-1.0.so.0 => /usr/local/lib/libgstvideo-1.0.so.0 (0x8146ab000) libgstbase-1.0.so.0 => /usr/local/lib/libgstbase-1.0.so.0 (0x814935000) libgstreamer-1.0.so.0 => /usr/local/lib/libgstreamer-1.0.so.0 (0x814b93000) libsecret-1.so.0 => /usr/local/lib/libsecret-1.so.0 (0x814eb1000) libxslt.so.1 => /usr/local/lib/libxslt.so.1 (0x8150f9000) libxml2.so.2 => /usr/local/lib/libxml2.so.2 (0x815334000) libicui18n.so.57 => /usr/local/lib/libicui18n.so.57 (0x815800000) libicuuc.so.57 => /usr/local/lib/libicuuc.so.57 (0x815c9b000) libicudata.so.57 => /usr/local/lib/libicudata.so.57 (0x816048000) libwebp.so.6 => /usr/local/lib/libwebp.so.6 (0x816249000) libXt.so.6 => /usr/local/lib/libXt.so.6 (0x8164af000) libXau.so.6 => /usr/local/lib/libXau.so.6 (0x816711000) libpthread-stubs.so.0 => /usr/local/lib/libpthread-stubs.so.0 (0x816913000) libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6 (0x816b14000) libgraphite2.so.3 => /usr/local/lib/libgraphite2.so.3 (0x816d19000) libxcb-xfixes.so.0 => /usr/local/lib/libxcb-xfixes.so.0 (0x816f4c000) libgbm.so.1 => /usr/local/lib/libgbm.so.1 (0x817153000) libgsttag-1.0.so.0 => /usr/local/lib/libgsttag-1.0.so.0 (0x817359000) liborc-0.4.so.0 => /usr/local/lib/liborc-0.4.so.0 (0x817594000) librt.so.1 => /usr/lib/librt.so.1 (0x817823000) libgcrypt.so.20 => /usr/local/lib/libgcrypt.so.20 (0x817a29000) libgpg-error.so.0 => /usr/local/lib/libgpg-error.so.0 (0x817d2e000) Are you running amd64?
Yes, I'm running amd64. Comparing your library versions, there are no version conflicts, but there are some different libraries which appear to be related to the display hardware. But that shouldn't make a difference. What does make a difference is the choice of control point detector, which is what is failing here. Normally I use panomatic, and in some caes (when panomatic fails) I use cpfind. Both of these work for me on these images. But autopano-sift-c fails in the way you describe, though I received no log messages before the /usr/local/include/wx-3.0/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type What I did get was: Searching for control points Could not find "autopano-noop.sh" in path. So it looks as if this problem is related to autopano-sift-c. Could you please try with cpfind and panomatic? You'll need the expert interface to change it: in the main window (which is hidden in simple mode), select File/Preferences/Control Point Detectors. When setting the detector, be sure to select "Set as default"; otherwise nothing changes.
With panomatic set as default, I get the same failure. I had "hugin's cpfind" set as the original default, so that also fails for me. This is really weird; I'm a complete novice at this, but here's what I'm seeing: If I run in the expert interface and do the following: Photos Tab: Create Control Points Do both optimizations (Geometric & Photometric) Don't think this matters Stitcher Tab: Stitch! it seems to work, regardless of the control point detector chosen. When using autopano-sift-c, I see some dialogs flash rapidly on the display, too fast to read, but it creates the control points ok. I don't see any dialogs flash when using panomatic. If, after successfully doing the above, I delete all the control points Control Points Tab: Select first control point Delete Delete... until none left Then change interface to Simple Click Align I get the error. Is there a way to get a log of everything it's doing? I couldn't find a log file or a way to see/set one. There's one in the batch processing window that pops up when the stitching is done, and I set that, but I don't see any output log (not sure where to look, directory-wise; I'm checking the tmp dir which is also where the images are proj file are).
OK, the autopano-sift-C issue was incorrect, but I've followed it up on my system. I had an old config file which gave the name autopano-noop.sh to the control point detector. That didn't exist, and its absence triggers the message: /usr/local/include/wx-3.0/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type Isn't that intuitive? So one reason mught be that the fast panorama preview doesn't find the control point detector. That's confusing, because the standard window does. Potentially this is a configuration issue, particularly since you have upgraded from an earlier version of Hugin. I have a few ideas, but these two are easiest: 1. You're running Hugin on a local X display, right? Otherwise change to a local display and see if that fixes the problem. The Fast Panorama Preview has become rather fussy lately. 2. Otherwise, - Make sure Hugin isn't running. - Rename your .hugin file (in the home directory) to something else. Don't forget the name. - Run hugin and try again. It'll create a new .hugin file. - Try stitching again. If it works after that, run diff to compare the two files. If it doesn't, we'll move on to the next step.
> I had an old config file which gave the name > autopano-noop.sh to the control point detector. That didn't exist, > and its absence triggers the message: > > /usr/local/include/wx-3.0/wx/strvararg.h(456): assert "(argtype & > (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): > format specifier doesn't match argument type > > Isn't that intuitive? blech. One additional data point. Up until about two weeks ago, I ran with 1280x1024 resolution. I'm now running with 1024x768 as I broke my back and am lying down and farther from the display and I need bigger writing to be able to see it. However, I tried changing back to 1280x1024 and I still get the errors, so that's not it. I also still get the gtk errors at startup; I was hoping they were related to display size. Given the apparent inaccuracy of the error and the fact that I get gtk errors which look like they could be related to bad calculations because of limited screen space I'm wondering if that's a possibility. yes, I'm running on a local X display, so that's not it > - Rename your .hugin file (in the home directory) to something else. That works. I'm looking at the diffs now. I've attached a tarball with old, new and diff
Created attachment 176900 [details] tarball with .hugin_org .hugin hugin.diff
Yikes... This line appears to be the problem: tempDir=/home/garya/tmp That is a valid dir: $ ls /home/garya/tmp DG_0117.pto Earring_0002_20161016_001.jpg DG_0117.tif Earring_0002_20161016_002.jpg ... However, there is this: I have /usr/home and /home pointing to a separate mounted filesystem: $ls -dl /home lrwxr-xr-x 1 root wheel 9 Oct 11 12:58 /home -> /hd2/home $ ls -dl /usr/home lrwxr-xr-x 1 root wheel 9 Oct 11 12:58 /usr/home -> /hd2/home $ df Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ufs/hd250G1root 4053308 964132 2764912 26% / devfs 1 1 0 100% /dev /dev/ufs/hd250G1var 16233660 573084 14361884 4% /var /dev/ufs/hd250G1usr 216201244 32746516 166158632 16% /usr tmpfs 17842208 96 17842112 0% /tmp /dev/ada2p7 10143484 7061748 2270260 76% /hd2/Downloads /dev/ada2p8 101556508 58025984 35406004 62% /hd2/home /dev/ada2p9 792722992 259428660 469876496 36% /hd2/home/garya/Photos I don't know how that affects things, but I have seen problems in ufraw, for example, with /home/garya being saved as /hd2/home/garya which causes grief when the mount point changes.
The symlinks don't have anything to do with it; setting tempDir to /tmp has the same effect. It seems like setting it to anything causes the failure. I suspect there is code somewhere that uses the default location no matter what rather than using the tempDir value.
OK, finally we're making progress. We've seen this before in the Hugin project, but you were the first to provide coherent feedback. It might take a while to get a fix, but in the meantime you have a workaround. Theoretically this PR is now finished, since it's not a FreeBSD problem, but I'll leave it open until I can get a fix.
Yep, easy workaround. Thanks for the help zeroing in on it.
Hugin version is at 2017.0.0. Is this still a problem, or is it overcome by events.
Appears to be fixed in 2017.0.0 running on FreeBSD breakaway.dreamchaser.org 10.3-RELEASE-p20 FreeBSD 10.3-RELEASE-p20 #0: Wed Jul 12 03:13:07 UTC 2017 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64