Neutrino has moved! Please check the new repository at https://github.com/NeutrinoToolkit/Neutrino
(the old tree is still available as "old-master").
A light, expandable and full featured image analysis tool for research
Neutrino has moved! Please check the new repository at https://github.com/NeutrinoToolkit/Neutrino
(the old tree is still available as "old-master").
what is labeled "phase" in the wavelet analysis is rather "fmod(fringeshift,1)". I propose to rename phase with fringeshift in the GUI and nPhysImage
Static colormaps in neutrino should be automatically generated from separate datafiles (one per colormap) with a standard format (eg. four columns ascii).
This colormap files can be or not generated by gnuplot (other possibilities include matlab, octave, python, ...).
A mechanism should be given to runtime load colormaps from file.
Hello!
My colleagues and I have been using Neutrino's wavelet package to analyze interferograms, as an alternative to the IDEA software (http://www.optics.tugraz.at/idea/idea.html). Our interferometric setup is described at http://arxiv.org/abs/1406.3639. We are interested in developing Neutrino for real-time analysis of interferometric camera images.
Working through this problem, I have come up with a question for the Neutrino developers. What is the status of the Python scripting? Is it functional?
I have seen references to a GUI element related to the python shell, but it does not appear to be in the release. I am running v1.0rc release on 64-bit Ubuntu. When I follow the instructions on the wiki (https://github.com/aflux/neutrino/wiki/neutrino-python), I get an error. Here is what I have done:"
Any help you could give would be greatly appreciated!
Thank you,
Scott
Once using Ctrl+click to normalize contrast to a certain area, nPalette does not refresh min/max values anymore. Steps to reproduce:
Neutrino developers,
Congratulations on pushing out a new release! While you're at it, here's an idea that might help users like me quite a bit: a wiki page walking through your build process in a step-by-step way (or in an overview manner). I've previously run into substantial trouble building parts of Neutrino from source (and had others say the same). It usually was as simple as missing various dependencies (and/or misunderstanding the role of various configuration scripts and makefiles). A little writeup on "Our development setup/ how we build Neutrino" would alleviate a lot of that. Thank you!
-Scott
With Windows 7 professionnel (Pack Service 1), the wavelet analysis does not work.
open an image, open the colorbox with the histogram.
do a blur.
whatever the blur, the histogram remains the same.
it looks like we should clear the content of the histogram somewhere (in TscanBrightness makes sense)
Following methods/operations can result in memory corruption and wild pointers going around:
need to read the whole chunk of bytes and then parse
we should think about setting colormin and colormax inside a phys property.
We already discussed about this several times, but now with the properties things might have changed.
It would be really useful when working on images with very different dynamics between each other. Because in that case rescaling one would mess all the others, in both "percentage mode" and "fixed mode" available now.
a couple of stuff for debian/mint build
nMakefile is broke (in italian: scazza):
some configure problems:
despite this using the prefix nPhysImage lib gets compiled
I see that the Makefile contains references to AppImageKit. Do you provide an AppImage for download?
starting from pyqt4.10 some changes do not allow anymore to compile the python lib
http://pyqt.sourceforge.net/Docs/PyQt4/build_system.html
we have to adapt our code to this http://pyqt.sourceforge.net/Docs/sip4/build_system.html
the code below in phys_resurrect_binary
is a sure leak
I would better uncomment the delete and return a null pointer
// my_phys is passed as an argument: function shoud not mess around with it!
//delete my_phys;
my_phys=NULL;
Sometimes anymap/phys_properties has erratic behavior, mostly on .neus resurrection. Possibly uninitialised value.
Debian package should include:
Process: Neutrino [826]
Path: /Applications/neutrino.app/Contents/MacOS/Neutrino
Identifier: com.neutrino
Version: v1.0rc-22-g84ca631 (v1.0rc-22-g84ca631)
Code Type: X86-64 (Native)
Parent Process: launchd [264]
Responsible: Neutrino [826]
User ID: 501
Date/Time: 2014-03-05 11:56:53.013 +0100
OS Version: Mac OS X 10.9.1 (13B42)
Report Version: 11
Anonymous UUID: 6EA07200-BA5C-F659-2216-757DDB114860
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Application Specific Information:
Assertion failed: (value>=0.0), function TIFFWriteDirectoryTagCheckedRational, file tif_dirwrite.c, line 2084.
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff95737866 __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff95c7535c pthread_kill + 92
2 libsystem_c.dylib 0x00007fff8d81abba abort + 125
3 libsystem_c.dylib 0x00007fff8d7e4a5f __assert_rtn + 321
4 libtiff.5.dylib 0x0000000100695a16 TIFFReadDirectory + 5210
5 libtiff.5.dylib 0x0000000100696894 TIFFReadDirectory + 8920
6 libtiff.5.dylib 0x00000001006988ec TIFFRewriteDirectory + 819
7 libtiff.5.dylib 0x000000010069ebc7 TIFFFlush + 343
8 libtiff.5.dylib 0x0000000100689aef TIFFCleanup + 32
9 libtiff.5.dylib 0x0000000100689c77 TIFFClose + 35
10 libnPhysImageF.so 0x00000001003e8539 phys_write_tiff(nPhysImageF, char const, int) + 1241
11 com.neutrino 0x000000010002c5c7 neutrino::fileSave(nPhysImageF, QString) + 343
12 com.neutrino 0x000000010002d2a7 neutrino::fileSave(QString) + 375
13 com.neutrino 0x000000010002d3ed neutrino::fileSave() + 45
14 com.neutrino 0x0000000100055920 neutrino::qt_static_metacall(QObject, QMetaObject::Call, int, void**) + 2192
15 QtCore 0x0000000101c1d66e QMetaObject::activate(QObject_, QMetaObject const_, int, void**) + 1566
16 QtGui 0x0000000100fb4a11 QAction::triggered(bool) + 49
17 QtGui 0x0000000100fb5da4 QAction::activate(QAction::ActionEvent) + 180
18 QtGui 0x0000000100f68b7a QMacInputContext::reset() + 42154
19 com.apple.AppKit 0x00007fff999c33d0 -[NSApplication sendAction:to:from:] + 327
20 com.apple.AppKit 0x00007fff999de348 -[NSMenuItem corePerformAction] + 394
21 com.apple.AppKit 0x00007fff999de084 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 117
22 com.apple.AppKit 0x00007fff99a2d4dd -[NSMenu internalPerformActionForItemAtIndex:] + 35
23 com.apple.AppKit 0x00007fff99a2d359 -[NSCarbonMenuImpl carbonCommandProcessEvent:handlerCallRef:] + 104
24 com.apple.AppKit 0x00007fff999d4176 NSSLMMenuEventHandler + 716
25 com.apple.HIToolbox 0x00007fff8dea86d4 DispatchEventToHandlers(EventTargetRec, OpaqueEventRef, HandlerCallRec) + 892
26 com.apple.HIToolbox 0x00007fff8dea7c87 SendEventToEventTargetInternal(OpaqueEventRef_, OpaqueEventTargetRef_, HandlerCallRec_) + 385
27 com.apple.HIToolbox 0x00007fff8debbd90 SendEventToEventTarget + 40
28 com.apple.HIToolbox 0x00007fff8def1a30 SendHICommandEvent(unsigned int, HICommand const_, unsigned int, unsigned int, unsigned char, void const_, OpaqueEventTargetRef_, OpaqueEventTargetRef_, OpaqueEventRef**) + 420
29 com.apple.HIToolbox 0x00007fff8df24618 SendMenuCommandWithContextAndModifiers + 59
30 com.apple.HIToolbox 0x00007fff8df245c4 SendMenuItemSelectedEvent + 178
31 com.apple.HIToolbox 0x00007fff8df244a5 FinishMenuSelection(SelectionData_, MenuResult_, MenuResult_) + 94
32 com.apple.HIToolbox 0x00007fff8df2c425 MenuSelectCore(MenuData_, Point, double, unsigned int, OpaqueMenuRef**, unsigned short_) + 718
33 com.apple.HIToolbox 0x00007fff8df2c051 _HandleMenuSelection2 + 446
34 com.apple.AppKit 0x00007fff9994679c _NSHandleCarbonMenuEvent + 284
35 com.apple.AppKit 0x00007fff997a556e DPSNextEvent + 2170
36 com.apple.AppKit 0x00007fff997a48db -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
37 com.apple.AppKit 0x00007fff997989cc -[NSApplication run] + 553
38 QtGui 0x0000000100f743b8 QDesktopWidget::resizeEvent(QResizeEvent) + 12584
39 QtCore 0x0000000101c040e4 QEventLoop::processEvents(QFlagsQEventLoop::ProcessEventsFlag) + 68
40 QtCore 0x0000000101c04494 QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) + 324
41 QtCore 0x0000000101c06b7c QCoreApplication::exec() + 188
42 com.neutrino 0x00000001000540b2 main + 914
43 com.neutrino 0x0000000100006ff8 start + 52
neutrino compile complains about -lhdf and -lfits even if not defined in config.h
static colormaps should be staticly written as
unsigned char * p = "\x01\x02\x03\x04...";
instead of
p[0] = 0x01; p[1] = 0x02; p[2] = 0x03; ...
doesn't work as it should....
specifications here:
http://rsb.info.nih.gov/ij/plugins/spe.html
Should add a pan to list and modify image properties
fix that
When adding a nPhys string property, we should replace newlines with a tag (like ) and converting those back to newlines when getting the property
add sin cos min, max
open image
open pan "region from path"
select region
hit "extract" button
debugger stops at a get_origin call in the nTics.cc::paint method
add a check for c++0x support in configure.ac and enable it to remove a lot of annoying messages
Hi developers,
How would you prefer that Neutrino's interferometric analysis package be cited in academic work? Thanks for writing great software!
Scott
Hello!
Do either of you know how to cleanly exit a Neutrino instance created in Python? I especially am interested in completely clearing the memory.
Here is what I have tried:
# Below, n is the Neutrino instance, and q is Qt instance (per neutrino python wiki).
n.destroy() # Closes main window, but leaves open other windows (such as Wavelet), and does not clear memory
n.close() # Does nothing
q.quit() # Does nothing noticable
del n # Closes Neutrino, if I remember correctly, but does not clear memory and can cause faults
Thanks in advance!
For a wide variety of functions (e.g. Wavelet analysis, FFT, etc.) I get the following warning, over and over, in my terminal window.
[WARNING] ../nPhysImage/anymap.h:89 (operator std::string) accessing unitialized value
The analyses still seem to execute without a problem.
Informations in fields phys_from_name and phys_name are correctly saved, eg:
@@ phys_properties
origin = (143.322:290.227)
phys_from_name = /home/alex/DEVEL/neutrino-newneus/neutrino/nPhysImage/testinterf.txt
phys_name = testinterf.txt
phys_orig = phys_file
phys_short_name = testinterf.txt
scale = (0.123:0.123)
@@ end
However, when reloading the .neu file, phys_from_name and phys_name are overwritten by the .neu filename.
I think this is the correct behavior, but original name should be preserved somehow (yet avoiding the loop name->old_name->old_old_name->[..]
Hello again! I noticed today a possible memory growth issue with repeated operations in Neutrino. When doing a Wavelet or Abel inversion, Neutrino's memory usage increases slightly even when overwriting a previous analysis. To be clear, since one is in overwrite mode, the buffer list does not grow -- the number of total buffers before and after the operation is the same.
The memory growth seems to be worse for the Abel inversion than the Wavelet analysis. The effect can be seen by opening a memory monitor (such as "top" in Linux) while repeatedly doing an Abel inversion in overwrite-old-data mode. The effect can be seen outside of python scripting, which convinces me it is not a python issue.
It's not very noticeable on single operations, but it is noticeable when scripting, where after a few hundred rapid repetitions Neutrino can take up a whole computer's worth of memory. A workaround is to restart Neutrino after a certain number of operations, clearing the memory.
Scott
When setting a relative min/max in nPalette, the values are not held after looping through other images.
Steps to reproduce:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.