Re: [hugin-ptx] CRITICAL: join us to nuke the pesky bug that is plaguing the fast preview

2011-08-08 Thread Terry Duell

Hullo Tommaso,

On Tue, 09 Aug 2011 03:05:24 +1000, Tommaso Massimi   
wrote:


[snip]


I think it is better to wait for Lukas' help.


I think you are right.
Thanks for your comments.

Cheers,
--
Regards,
Terry Duell

--
You received this message because you are subscribed to the Google Groups "Hugin and 
other free panoramic software" group.
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
To post to this group, send email to hugin-ptx@googlegroups.com
To unsubscribe from this group, send email to 
hugin-ptx+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/hugin-ptx


Re: [hugin-ptx] CRITICAL: join us to nuke the pesky bug that is plaguing the fast preview

2011-08-08 Thread Tommaso Massimi
On Fri, Aug 5, 2011 at 1:18 AM, Terry Duell  wrote:
> Hullo Tommaso,
[...]
> Do you understand the valgrind output well enough to be more specific about
> where in the hugin code these problems are occurring?
> Being able to home in one where the fixes are needed would help, if that's
> possible.


Hi Terry,

if what we can see in the first part of the valgrind output is not a
false positive,
there is a probelm at design level,
i.e. gtk+ is used in more not synchronized threads

This could require a deep revision of the code;
 as I have never seen the hugin code,
I can't help here.

In the second part of the valgrind output there are a couple of backtraces
probably caused by some other thread issue, as Lukas said.

you could see more running hugin with the debugger

gdb hugin

and at crash time you should see the same backtrace valgrind reports
and also memory and variables value at crash time.

Then digging a bit, you could see where the problem is,
but if you are not a developer,
find out the problem following this way could be an hard job.

I think it is better to wait for Lukas' help.

-- 
You received this message because you are subscribed to the Google Groups 
"Hugin and other free panoramic software" group.
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
To post to this group, send email to hugin-ptx@googlegroups.com
To unsubscribe from this group, send email to 
hugin-ptx+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/hugin-ptx


[hugin-ptx] Re: how many man-years to reboot Hugin?

2011-08-08 Thread kfj
On 8 Aug., 15:50, Frederic Da Vitoria  wrote:

> Python can be compiled. Actually, cross platform dependency handling
> is so tricky that a Hugin written in Python would have to be compiled
> IMO. So the performance won't be noticeably different.

How would you compile Python? And why? You may suffer from a
misconception here. It is possible to package a python program, a
python interpreter and all modules it uses into a bundle which can be
distributed, installed and executed like any other program, since it's
all FOSS and noone asks you for license fees for the interpreter etc.
- but you can't compile python code.

Python is, at a basic, technical level a particular style of using C.
There is no difference. You can write stuff in C which you compile and
use that from python, making it execute faster than writing the same
stuff in python. Every bit of python code is compiled into a byte-code
(not machine language), which is then executed, but this compilation
step is left to the actual machine the code is running on, precisely
to keep the python code unencumbered by platform specificity.

When it comes to dependencies from other libraries: they either exist
as python modules for all platforms hugin supports - then we can use
them - or they don't, in which case we can either look for something
else or wrap the C/C++ libraries with SWIG, just as I have wrapped
most of hugin.

I shan't comment further on the 'user's point of view'. If any of you
have followed the discussion you know that my proposition is not to
modify hugin but cleanly rewrite a new incarnation in a parallel
project, code name munin. Once it's there, the users can choose which
they prefer. And if it's a Linux geek thing that doesn't run on MacOS
maybe it's allure will be so great that someone comes and ports it to
the Mac. If not, the geeks have a tool they themselves can use
happily, never mind the 'users' who can just as happily ignore it and
hope that some of the techies still find it interesting to maintain
'their' program.

Kay

-- 
You received this message because you are subscribed to the Google Groups 
"Hugin and other free panoramic software" group.
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
To post to this group, send email to hugin-ptx@googlegroups.com
To unsubscribe from this group, send email to 
hugin-ptx+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/hugin-ptx


Re: [hugin-ptx] Re: how many man-years to reboot Hugin?

2011-08-08 Thread Frederic Da Vitoria
Hello

I am not a Hugin developer either, nor am I a Python developer, but I
feel another user's point of view wouldn't be too much here :-) Just
as Harry did, I will only answer to those items which I have something
to say about.

2011/8/8, Harry van der Wolf :
> = Going to a (in memory) database format:
> - Even though it seems a good step to make, it will create another
> dependency on all platforms. I don't like that.
I agree in general, but if my informations are correct, sqlite is not
much of a dependency, at
least not in the Windows world. Just copy an executable file and
sqlite is ready to work.

> - Do we implement our own sqlite3 "engine"  into the package or make it a
> system dependency which will certainly hinder a lot of end users.
See above.

> = (wx)Python:
> - Kay suggest to move to (wx)Python for logic and gui. Currently python is
> an issue on both windows and OSX. That doesn't mean that it can't have a
> glorious future but we are certainly not there yet. C(++) is a well defined
> standard. Python should definitely fully backward compatible to at least
> 2.6.
I feel using or not WxPython is a decision where end-users are not
much concerned. Even if the developers decide to indeed switch to
Python for a part of the development, the end-users would still get
pre-compiled complete versions. Switching to Python will indeed
trigger a few problems, but those problems will only bother the people
who will create the end-user setups. I know a few applications which
rely on Python. I mean: I (Windows user) know a few apps (written on
Linux) which rely on Python. In those applications, the decision to
change to something else (or rather not to) has always been a
developer decision ("Python's paradigm does not suit me", or "some
things are much easier with this other tool" or so on), I never saw a
user complain "please leave Python, it sucks".

> - When moving to (wx)Python: what will it do to performance? A compiled
> binary is AFAIK much faster than any interpreted program. If we leave the
> tools in C(++) for performance and only build a wxPython shell around it,
> why not stay entirely on C(++) for the gui and logic.
Python can be compiled. Actually, cross platform dependency handling
is so tricky that a Hugin written in Python would have to be compiled
IMO. So the performance won't be noticeably different.

> - To me the python extension (note my wording) is very good functionality to
> be able to build new functionality (by the experts) to be later on built
> (using C++) into Hugin for the greater, lesser skilled community (also
> related to end user friendliness).
I agree. But if the plugins written in python are good enough, then
there should be no need to rewrite them in C(+/- ++). Which means the
ability to improve those plugins would in the hands of the users.
That's one of the points in the plugin architecture: let the end users
adapt the application to their needs, thus relieving the code
developers of the burden of doing it for them. Or said in a more
positive way: the users stop asking and start doing :-)

Plugins would need to be incorporated into the C core only when they
would do calculation-intensive work.

-- 
Frederic Da Vitoria
(davitof)

Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org

-- 
You received this message because you are subscribed to the Google Groups 
"Hugin and other free panoramic software" group.
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
To post to this group, send email to hugin-ptx@googlegroups.com
To unsubscribe from this group, send email to 
hugin-ptx+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/hugin-ptx


Re: [hugin-ptx] Re: how many man-years to reboot Hugin?

2011-08-08 Thread Harry van der Wolf
Instead of copying large portions of other mails I would like to go directly
into some of the points mentioned with my end user point of view mixed in:

= User friendliness (not mentioned before, but my point of view):
- All solutions offered so far come from the "techies" and relate to the
code base, and off course they are the driving force behind the hugin
community, but the techies are only 5% (maximum!) of the end-user base where
both the windows end users (by far the biggest amount) and OSX end-users are
(almost by definition) not the most technical users.
All solutions should aim for more user friendliness. By now the python
integration is certainly a help for new functionality but it's not user
friendly. Also remember our discussions about how Hugin should look like.
I'm not a coder of course but I don't think the code base is that bad, like
mentioned by Tom Sharpless and the article mention by Habi. When looking at
first at the code, even if you are experienced in other languages (php for
me or maybe python for others), it is always tricky to find your way.
- Again: the techies know their way in the program as they are experienced,
some with many, many years of experience. It still strikes me that so many
users experience issues on "simple user-friendly" functionality (note:
simple and user-friendly to the experienced users).

= Going to a (in memory) database format:
- Even though it seems a good step to make, it will create another
dependency on all platforms. I don't like that.
- Do we implement our own sqlite3 "engine"  into the package or make it a
system dependency which will certainly hinder a lot of end users.
- What about the translations? It seems very logical to me to put them as
well (or even as first) in a database. But then: what about the translators:
Do they need to setup a development environment with e.g. sqlite to be able
to do their translation work? I'm afraid that won't work. So in that case:
Do we still use the .po files and "someone" writes a C(++) or (wx)Python
tool to import them into the database?

= (wx)Python:
- Kay suggest to move to (wx)Python for logic and gui. Currently python is
an issue on both windows and OSX. That doesn't mean that it can't have a
glorious future but we are certainly not there yet. C(++) is a well defined
standard. Python should definitely fully backward compatible to at least
2.6.
- When moving to (wx)Python: what will it do to performance? A compiled
binary is AFAIK much faster than any interpreted program. If we leave the
tools in C(++) for performance and only build a wxPython shell around it,
why not stay entirely on C(++) for the gui and logic.
- To me the python extension (note my wording) is very good functionality to
be able to build new functionality (by the experts) to be later on built
(using C++) into Hugin for the greater, lesser skilled community (also
related to end user friendliness).
- We have some C(++) programmers on board. How many (wx)Python programmers
do we have? This is a neccessity for continuity.

= how? or why?
- In previous mails we were already discussing "how to
plan/structure/execute". To me this is how many projects (also within my own
company) go off  the rails. The first questions are: Why do we want to do
it? And actually who want's it: 95% end users struggling for the year to
come or leaving, or 5% techies? What's the "business case"? Is it worth it?
This is not some GSOC minor project (I don't mean this derogatory, not at
all) which can be integrated at some point. It will make hugin shake (or
break) at it's foundation.

I don't give much answers or solutions. Merely things to consider when doing
such a major step which could break hugin easily for at least a year (or
worse).

my 2 cents.

Harry

-- 
You received this message because you are subscribed to the Google Groups 
"Hugin and other free panoramic software" group.
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
To post to this group, send email to hugin-ptx@googlegroups.com
To unsubscribe from this group, send email to 
hugin-ptx+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/hugin-ptx


[hugin-ptx] Re: Workflow for manual 16 bit blending of Hugin panoramas using 8 bit gimp

2011-08-08 Thread torger
Yes I have visited that web page before, when I was searching for HDR
workflows in Linux :-).

Which workflows that work depends a bit on what one's goal is. To me,
it is important that there are no visible artifacts even at close
inspection, ghosting, seams, etc, and I most often strive for a
natural look. So when I do HDR it is rarely to achieve a cool "HDR
look", but to increase the dynamic range in problematic light, so it
is often only about merging 2-3 exposures where the brightly lit parts
is from the shorter exposures, and I blend in that manually. I usually
keep some light overexposure on the brighter parts since it often
looks more natural (provides some glow to it). For this type of goal
the automatic tools can rarely produce as good results. However, if
one want to achieve a cool HDR look with exaggerated texture and
cartoon-like tone mapping real HDR tools are required. In some cases
it may be useful to combine both automatic tools and manual blending.

But one can also have the view that some minor artifacts are ok, and
it is more important with a quick workflow. Often manual blending is
quicker than one may think though. The toughest cases is where it must
be a sharp transition between the various exposures, the seam may then
be more or less a pixel-by-pixel work, but often one can get away with
a few feathered selections and gradients.

If working with free tools, it is kind of good to prefer the more
manual approaches, since I don't see free software being near as good
as say photomatix when it comes to automatic HDR.

On Aug 7, 1:21 pm, "Carlos Eduardo G. Carvalho (Cartola)"
 wrote:
> Hi, have you already seen this kind of workflow?
>
> http://photoblog.edu-perez.com/2009/02/hdr-and-linux.html
>
> I guess I have already posted it here, but anyway...
>
> I don't think it is good for every situation, but have already used some
> times with good results. Note: I did it without RAW, working directly with
> JPGs.
>
> [ ]s,
>
> Carlos E G Carvalho (Cartola)http://cartola.org/360
>
> 2011/8/6 torger 
>
>
>
> > On 6 Aug, 22:18, Yuval Levy  wrote:
> > > The clouds are blue in both processed images.  Is this intended?  Or are
> > the
> > > images above just one layer that you use to produce the final image?
>
> > Well, I intentionally wen't over the top with the image to stress the
> > jpeg a little bit more, so I have put in both more saturation and
> > contrast than I would do normally. The clouds are very pale blue in
> > the raw file so the blue color comes just from heavily increased
> > saturation, so yes it is intended. In a saner version I would still do
> > the same things, but not pull the sliders so far... :-)
>
> > > > My intention of the creative composition was to enhance the sunlight
> > > > and make it as saturated as experienced at sight, and increase
> > > > generally the contrast in the clouds.
>
> > > So the next step would be to mask out the other parts of the image and
> > use
> > > another process for them?
>
> > > Thank you for sharing so much interesting information about your
> > workflow.
>
> > I already did that kind of process here. I used rawtherapee, and it
> > does not (yet) support layers/versions so it is a bit cumbersome, but
> > I did four renditions, one for the foreground, one for the water, one
> > for the sunlight and one for the clouds with different settings
> > (differences in curves, saturation, exposure, and detail settings).
> > The foreground has moderately increased saturation, sunlight a lot,
> > and clouds somewhere inbetween. Clouds has a lot increased contrast,
> > while foreground is not so much so etc. I used more aggressive
> > sharpening in the foreground than on the clouds. Then I loaded them as
> > layers and masked them together in Gimp.
>
> > Normally this image would probably not need this multistep workflow,
> > why I need to split in sections is because of the extreme settings,
> > I'm for example using an insane amount of local contrast on the clouds
> > which would break everything else in the picture. However, even for
> > "simple" pictures, when I want to make a "print quality" version for I
> > often re-process then and give them this kind of treatment to do more
> > subtle improvements, afterall I think postprocessing is kind of fun
> > too. In landscapes scenes there are typically 2 - 4 sections that I
> > treat with separate parameters and then blend together. I also do
> > dodge-and-burn this way (like to have layer masks for everything, has
> > a non-destructive feel to it). So for a hugin stitched panorama, this
> > treatment takes place after stitching is complete - thus important to
> > have it in 16 bit tiff so continued processing maintains quality.
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Hugin and other free panoramic software" group.
> > A list of frequently asked questions is available at:
> >http://wiki.panotools.org/Hugin_FAQ
> > To post to this group, send email to

[hugin-ptx] Re: how many man-years to reboot Hugin?

2011-08-08 Thread kfj
On 8 Aug., 09:18, kfj <_...@yahoo.com> wrote:

> In a way, I can't see why we couldn't simply use plain python

look at this hsi script (try save it as xx.py and execute it with
'python xx.py'  - you'll have to use your own imges, of course):

from hsi import *
p = Panorama()
i0 = SrcPanoImage ( 'P197.JPG' )
i1 = SrcPanoImage ( 'P198.JPG' )
i0.setYaw ( -10 )
i1.setYaw ( 10 )
p.addImage ( i0 )
p.addImage ( i1 )
ofs = ofstream ( 'xx.pto' )
p.writeData ( ofs )

This makes a panorama from the two images, sets yaw values for the
images and writes the resulting panorama out as a pto file. I think
even a non-programmer can figure it out. So in fact, we already have
the capability to use python to create the data structured hugin uses.
No fuss. It's just that these data structures are a bit arcane and
undocumented. See what I mean?

Kay

-- 
You received this message because you are subscribed to the Google Groups 
"Hugin and other free panoramic software" group.
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
To post to this group, send email to hugin-ptx@googlegroups.com
To unsubscribe from this group, send email to 
hugin-ptx+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/hugin-ptx


[hugin-ptx] Re: how many man-years to reboot Hugin?

2011-08-08 Thread kfj


On 8 Aug., 01:48, Yuval Levy  wrote:
> On August 7, 2011 03:25:31 am kfj wrote:

> > - plus an import/export facility to make human-readable output
> >  ...
>
> all of these points strongly toward XML...
>

do you really think XML is human-readable? And think of the bloat if
you want something like 5 control points!

PTO is a bit like CSV, without the semicolons. Lacking identifiers,
explicit delimiters and structuring elements (brackets, braces), it
can only be used for very simple things.

The problem with the current pto is more it's carelessly and
organically grown format. With a clean design for a language to
encompass hugin's needs writing a parser is easy. I've already written
one for pto with all it's idiosyncrasies and it wasn't hard, so it
could only get better. Feeding the internal representation of the
parse into a database isn't magic, either.

I'd recommend keeping a script language for the project files, though
- a mere data dump would be just as annoying as pto, and too verbose.
In a way, I can't see why we couldn't simply use plain python - we
already have a python interpreter built into hugin. We could have a
module containing the data types, and the project file would simply
import that and then proceed by defining the data in ordinary python
syntax. Just a quick shot, but maybe feasible? It would have the nice
effect that the whole thing would become infinitely flexible to do
more than merely defining data (think of calculated values, import
libraries for other languages, grouping, looping, conditions...) -
whereas the syntax would be that of an increasingly common, well-
designed language, instead of something arcane you have to learn anew
and is only good for the one purpose.

>From hugin's point of view, things would become very easy indeed:
parsing a pto file would consist in executing the python file - with
all the comforts that brings, like to-the-line error messages,
exception handling - plus whatever the python modules describing the
hugin data types come up with (like, logging, consistency checks,
adaptation to external conditions etc. etc.). A parser for pto already
exists and could be used for backward compatibility. With appropriate
python modules, the whole data content of the project file could be
presented to hugin as an already-constructed, ready-to-use data
structure - preferably one provided by a database-like engine. Once
things evolve, the next step after executing the project file would be
to execute the (wxPython) GUI do manipulate the data...

I've used the same approach in a project of mine for handling audio
data. In it's first incarnations, I designed a language for it. I did
a right proper job: meta-specification of the data types, awk and
shell scripts generating a lexical analyzer and a grammar, plus the C
and C++ objects of the internal representation from the meta-spec -
you name it, I had it. I gloried in the feeling of designing THE audio
language. It became very complex - after a while I had structures,
procedures... and eventually I asked myself: why am I doing this? How
different is my anticipated language from any other procedural
language? It turned out the differences were minute. Modern languages
are so flexible, that they can be put to almost any use with the
syntax they have. And one of the most flexible is python, since it's
multi-paradigm and interpreted - yet capable of directly calling C
code where performance matters. The next incarnation of my project
consisted of a bunch of python modules, some in C for heavy-duty DSP
stuff, as befits an audio program, some in pure python to deliver the
logic and the interface to actually make stuff happen. It was much
simpler. Much less code. The resulting scripts, by using python's
clear and well-thought-out syntax, were much easier to grasp than my
own language. And anyone knowing python could instantly have dealt
with it, after a quick acquaintance with the data types and logic.
Even the structuring into low-level C modules and higher-level python
code wasn't a hindrance but a help, because it forced me to separate
the two, which turned out beneficial.

Kay

-- 
You received this message because you are subscribed to the Google Groups 
"Hugin and other free panoramic software" group.
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
To post to this group, send email to hugin-ptx@googlegroups.com
To unsubscribe from this group, send email to 
hugin-ptx+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/hugin-ptx