Source code for scipy ndimage _convolve1d
I did a Gaussian smoothing on each slice of a 528 x 528 x 128 image stack (so 128 slices) and it went amazingly fast (it was with a small filter kernel, size 3 x 3). I did not really bother to time it but it was less than 2 seconds.
I am very interested in how this function works "under the hood", because I am trying to write some sort of fast neighbor counter that looks a bit like a convolution. I use all my fancy magic in this function of my own, like stride_tricks
and np.einsum
, but still, it is horribly slow, about 5 minutes for the same image stack, again with a 3x3 kernel. For this reason I want to have a look at the filter implementation that is used in skimage.
I tried to find the source code on Github for the skimage.filters.gaussian
. This one sends me all over the place, because the gaussian function uses gaussian_filter from scipy.ndimage.filters
, and this function again uses another function and so on.
The closest I got to the real source, is scipy.ndimage.filters.correlate1d
. This function returns a function called _nd_image.correlate1d
, but I cannot find the source for this one anywhere!
If you know where the source is located, many thanks for sharing!
Also if you know why this filter is so fast, i.e. what special tricks it uses, I would be happy to hear about that.
python scipy convolution ndimage
add a comment |
I did a Gaussian smoothing on each slice of a 528 x 528 x 128 image stack (so 128 slices) and it went amazingly fast (it was with a small filter kernel, size 3 x 3). I did not really bother to time it but it was less than 2 seconds.
I am very interested in how this function works "under the hood", because I am trying to write some sort of fast neighbor counter that looks a bit like a convolution. I use all my fancy magic in this function of my own, like stride_tricks
and np.einsum
, but still, it is horribly slow, about 5 minutes for the same image stack, again with a 3x3 kernel. For this reason I want to have a look at the filter implementation that is used in skimage.
I tried to find the source code on Github for the skimage.filters.gaussian
. This one sends me all over the place, because the gaussian function uses gaussian_filter from scipy.ndimage.filters
, and this function again uses another function and so on.
The closest I got to the real source, is scipy.ndimage.filters.correlate1d
. This function returns a function called _nd_image.correlate1d
, but I cannot find the source for this one anywhere!
If you know where the source is located, many thanks for sharing!
Also if you know why this filter is so fast, i.e. what special tricks it uses, I would be happy to hear about that.
python scipy convolution ndimage
2
The underlying function is written in C: github.com/scipy/scipy/blob/…
– Warren Weckesser
Nov 14 '18 at 22:17
add a comment |
I did a Gaussian smoothing on each slice of a 528 x 528 x 128 image stack (so 128 slices) and it went amazingly fast (it was with a small filter kernel, size 3 x 3). I did not really bother to time it but it was less than 2 seconds.
I am very interested in how this function works "under the hood", because I am trying to write some sort of fast neighbor counter that looks a bit like a convolution. I use all my fancy magic in this function of my own, like stride_tricks
and np.einsum
, but still, it is horribly slow, about 5 minutes for the same image stack, again with a 3x3 kernel. For this reason I want to have a look at the filter implementation that is used in skimage.
I tried to find the source code on Github for the skimage.filters.gaussian
. This one sends me all over the place, because the gaussian function uses gaussian_filter from scipy.ndimage.filters
, and this function again uses another function and so on.
The closest I got to the real source, is scipy.ndimage.filters.correlate1d
. This function returns a function called _nd_image.correlate1d
, but I cannot find the source for this one anywhere!
If you know where the source is located, many thanks for sharing!
Also if you know why this filter is so fast, i.e. what special tricks it uses, I would be happy to hear about that.
python scipy convolution ndimage
I did a Gaussian smoothing on each slice of a 528 x 528 x 128 image stack (so 128 slices) and it went amazingly fast (it was with a small filter kernel, size 3 x 3). I did not really bother to time it but it was less than 2 seconds.
I am very interested in how this function works "under the hood", because I am trying to write some sort of fast neighbor counter that looks a bit like a convolution. I use all my fancy magic in this function of my own, like stride_tricks
and np.einsum
, but still, it is horribly slow, about 5 minutes for the same image stack, again with a 3x3 kernel. For this reason I want to have a look at the filter implementation that is used in skimage.
I tried to find the source code on Github for the skimage.filters.gaussian
. This one sends me all over the place, because the gaussian function uses gaussian_filter from scipy.ndimage.filters
, and this function again uses another function and so on.
The closest I got to the real source, is scipy.ndimage.filters.correlate1d
. This function returns a function called _nd_image.correlate1d
, but I cannot find the source for this one anywhere!
If you know where the source is located, many thanks for sharing!
Also if you know why this filter is so fast, i.e. what special tricks it uses, I would be happy to hear about that.
python scipy convolution ndimage
python scipy convolution ndimage
edited Nov 14 '18 at 22:16
Gnub
asked Nov 14 '18 at 22:01
GnubGnub
11
11
2
The underlying function is written in C: github.com/scipy/scipy/blob/…
– Warren Weckesser
Nov 14 '18 at 22:17
add a comment |
2
The underlying function is written in C: github.com/scipy/scipy/blob/…
– Warren Weckesser
Nov 14 '18 at 22:17
2
2
The underlying function is written in C: github.com/scipy/scipy/blob/…
– Warren Weckesser
Nov 14 '18 at 22:17
The underlying function is written in C: github.com/scipy/scipy/blob/…
– Warren Weckesser
Nov 14 '18 at 22:17
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53309387%2fsource-code-for-scipy-ndimage-convolve1d%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53309387%2fsource-code-for-scipy-ndimage-convolve1d%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
The underlying function is written in C: github.com/scipy/scipy/blob/…
– Warren Weckesser
Nov 14 '18 at 22:17