Commit Graph

84 Commits

Author SHA1 Message Date
Emmanuelle Gouillart 58a57238cc Merge pull request #282 from JDWarner/multispectral_random_walker
Multispectral random walker
2012-09-02 06:23:58 -07:00
JDWarner e8ddcefae3 PEP8 compliance, removed scaling, different data parsing.
This commit represents all recommended changes since the last
commit, notably:

* PEP8 compliance (in new sections; a few old ones still
  noncompliant w/indentations)

* Moved `depth` kwarg to end of list and in docstring.
  Clarified `depth` docstring, and added section in Notes
  further explaining this parameter.

* Added section in Notes warning that for multichannel inputs,
  all channels are combined during scaling.  The user must
  separately normalize each channel prior to calling
  random_walker()

* New method for parsing data, allowing more elegant gradient
  calculation code. Probably also more extensible. The 2D
  multispectral case forced this change.

* New test: `test_multispectral_2d()`
2012-08-31 14:14:46 -05:00
Johannes Schönberger dd45f15ced Use explicit keyword for dtype 2012-08-30 09:40:54 +02:00
Johannes Schönberger bbeaec6b3f Add examples to doc string of clear_border 2012-08-30 09:36:28 +02:00
JDWarner 99238c44a5 sqrt(gradients) line removed 2012-08-29 17:07:13 -05:00
JDWarner 61320957eb Changes based on PR review recommendations: input format, scaling, and bugfix.
In this new version, all instances of 'spectrum' have been replaced with 'channel'.  The documentation also reflects this change, and the new multichannel kwarg used to indicate multichannel input is named appropriately.

New boolean multichannel kwarg added, which controls if the input has multiple channels or not.  Input 'data' is now array_like for both gray-level and multichannel.  This kwarg is needed mainly because a 3-D array could be either 3 spatial dimensions or a set of different 2-D channels.

New scaling kwarg added (may be removed in future), controlling if data scaling is applied to ALL channels or each channel individually, if multichannel=True. No effect for gray-level data.

Removed np.sqrt(gradients) in _compute_weights_3d(), which was a bug. Tests now pass consistently.

New method for maintaining shape from input to output, where dims = data.shape prior to np.atleast_3d().  A theoretical (70,100,1) array passed should now result in a (70,100,1) shaped output, for example.

Updated and fixed multispectral test script to work with new version.  TODO: Additional test(s) likely needed to cover code branches from new kwargs.
2012-08-29 16:33:56 -05:00
JDWarner 682d0535cd Added multispectral random walker test.
Since the multispectral path is equivalent except for gradient calcs,
only one test case is needed.  This test is modeled on the 3-D
non-multispectral version.  If deemed necessary, adding a 2-D case
would be simple.
2012-08-27 13:41:41 -05:00
Johannes Schönberger 1177cf1393 Move clear_border to segmentation package 2012-08-27 18:56:05 +02:00
JDWarner feca48cc49 Added return_full_prob kwarg to solve call if pyamg not present. 2012-08-27 11:48:32 -05:00
JDWarner 8955dad32e Multispectral modifications applied to random walker. 2012-08-27 11:42:30 -05:00
Stefan van der Walt 8d54380dc0 Merge pull request #259 from emmanuelle/fix_random_walker
ENH: Fix random walker.
2012-08-27 02:40:56 -07:00
Emmanuelle Gouillart 9d29d5df78 PEP8: indentation in random_walker_segmentation 2012-08-27 11:26:11 +02:00
Emmanuelle Gouillart 28161eaee6 ENH: better handling of labels that need to be reordered
(this is now done automatically)
2012-08-24 15:09:46 +02:00
Johannes Schönberger a08779e06a Use predefined header files from Cython 2012-08-21 15:15:27 +02:00
Stefan van der Walt 1c3aeec2a8 BUG: Remove uses of xrange for py3 compatibility. 2012-08-20 15:25:40 -07:00
Andreas Mueller 6b1dab9f9a MISC move felzenszwalb_cy.pyx to _felzenszwalb_cy.pyx, don't use xrange when not necessary 2012-08-20 22:30:58 +01:00
Andreas Mueller fe2a4334fa ENH addressed (hopefully all) of Tony's and Stefan's comments. 2012-08-20 20:22:06 +01:00
Andreas Mueller 37c0ffe072 cosmit: changed the names of x and y to r and c. that was no fun, i tell you. 2012-08-20 20:01:41 +01:00
Andreas Mueller 8d769a4cd9 ENH Felzenszwalbs segmentation somewhat faster 2012-08-10 10:48:38 +01:00
Andreas Mueller 312b03d1b1 ENH more speeeeed 2012-08-10 10:35:23 +01:00
Andreas Mueller 8f5337a2bf ENH added some cdefs 2012-08-10 10:31:23 +01:00
Andreas Mueller f88a29b091 ENH minor speedups. 2012-08-10 10:03:20 +01:00
Andreas Mueller f560346309 Trying to avoid name collisions. 2012-08-05 21:31:24 +01:00
Andreas Mueller f421587aa4 ENH renamed "felzenszwalb_segmentation" to "felzenszwalb", remove debug output from slic 2012-08-05 21:10:29 +01:00
Andreas Mueller 73dd46019b FIX width/height trouble, add non-regression test 2012-08-05 21:06:37 +01:00
Andreas Mueller e0034e384a Minor fixes addressing @tonysyu's comments. 2012-08-05 20:30:43 +01:00
Andreas Mueller 530f2c31c4 pep8 2012-08-05 20:25:34 +01:00
Andreas Mueller 8098718036 Fixup tests, add test for slic. 2012-08-05 14:33:30 +01:00
Andreas Mueller b1eb4265ed Post-processing for felzenszwalbs algorithm. 2012-08-05 13:52:15 +01:00
Andreas Mueller e65d6f6635 Added smoothing option to quickshift 2012-08-04 20:27:31 +01:00
Andreas Mueller 10934cfaff Fixed bug in SLIC smoothing 2012-08-04 20:27:18 +01:00
Andreas Mueller d770fc714d quickshift: convert to lab in function, some comments in code. 2012-08-04 19:56:22 +01:00
Andreas Mueller 1746d2c38c Some scaling issues to be closer to reference implementation 2012-08-04 18:03:03 +01:00
Andreas Mueller b6059b5672 Put RGB2Lab into slic as it seems to be essential. 2012-08-03 12:00:39 +01:00
Andreas Mueller cd1007a0bc Rename km_segmentation to slic. They have a PAMI paper now so I guess we should use their name. 2012-08-03 11:57:02 +01:00
Andreas Mueller 026b6b1df0 Fix initialization in km_segmentation, prettier examples 2012-08-03 11:43:03 +01:00
Andreas Mueller d9a22d867b Documentation, example for km_segmentation 2012-08-03 11:37:12 +01:00
Andreas Mueller 1c69adb817 MISC some simplifications, minor speedup 2012-08-03 11:37:11 +01:00
Andreas Mueller 501a6db8ad ENH speedup, means and image use pointers 2012-08-03 11:37:11 +01:00
Andreas Mueller 8f24366790 starting cython implementation of km_segmentation 2012-08-03 11:37:11 +01:00
Andreas Mueller 7b646ad7ea fix trying to make this implementation more like slic 2012-08-03 11:37:11 +01:00
Andreas Mueller 49bc44c6e9 FIXed test to work with the fixed "hashing" of colors 2012-08-03 11:37:11 +01:00
Andreas Mueller ccfb89b957 FIX Tried to address @stefanv's comments on the PR. 2012-08-03 11:37:11 +01:00
Andreas Mueller 05cc863f3f First draft for numpy based km_segmentation 2012-08-03 11:37:11 +01:00
Andreas Mueller d2e226fe59 ENH tests for Felzenszwalbs segmentation, fixed off-by-one error 2012-08-03 11:37:11 +01:00
Andreas Mueller a7c98cb67a Remove felzenszwalb_segmentation_gray again since it just complicates the interface. 2012-08-03 11:37:11 +01:00
Andreas Mueller f0a7212c4f ENH Rename parameters in quickshift, add "ratio" 2012-08-03 11:37:11 +01:00
Andreas Mueller 08df2a5103 enh: minor simplifications 2012-08-03 11:37:11 +01:00
Andreas Mueller 8fa5427afc FIX build problem and cython problem resolved. 2012-08-03 11:37:11 +01:00
Andreas Mueller ce26467ad4 ENH: make quickshift more tolerant to input type, just convert to float. Also keep track of random seed for reproducable tests.
Finally, do a unique on the output and add testing.
2012-08-03 11:37:11 +01:00