How convolution kernels are defined?












0















I am currently learning some of the kernels that can be used for image preprocessing. I can see that every kernel that we use have some predefined values for n*n matrix as stated in https://en.wikipedia.org/wiki/Kernel_(image_processing)



But what I wanted to understand is how are these kernels defined? Why we end up having values as stated in Wiki.



Please do help me in understanding this. Thank you in advance










share|improve this question




















  • 1





    This is really a broad question. You can define millions of different convolution kernels, it is not possible to enumerate and explain them all. Understanding a convolution kernel requires understanding Fourier analysis, I recommend that you find a book about that. For example Oppenheim and Willsky is a solid choice.

    – Cris Luengo
    Nov 28 '18 at 6:31













  • yes Cris. I feel this as a broad question. So the kernel derived is not done using Convolution Neural network backpropagation ?

    – SriHari SriHari.M
    Nov 28 '18 at 7:00






  • 1





    Ha! Interesting! I didn't expect that point of view... :) No, typically convolution kernels are designed for their desired properties. In a CNN, you get kernels that are designed by back propagation, but those kernels are specific to one network, and trying to understand their properties would be futile.

    – Cris Luengo
    Nov 28 '18 at 7:05






  • 2





    A convolution can be designed in the frequency domain (f.i. lowpass filtering makes a blurring effect), but applied in the spatial domain via a convolution.

    – Yves Daoust
    Nov 28 '18 at 8:45






  • 1





    Yes, convolving an image with a kernel can be done in the Fourier domain by transforming both, multiplying them, then inverse transforming the product. Because of this relationship, the Fourier domain is a great way to analyze and design linear filters: there the simple multiplication is easy to understand, you see what happens to each individual frequency component.

    – Cris Luengo
    Nov 28 '18 at 13:39
















0















I am currently learning some of the kernels that can be used for image preprocessing. I can see that every kernel that we use have some predefined values for n*n matrix as stated in https://en.wikipedia.org/wiki/Kernel_(image_processing)



But what I wanted to understand is how are these kernels defined? Why we end up having values as stated in Wiki.



Please do help me in understanding this. Thank you in advance










share|improve this question




















  • 1





    This is really a broad question. You can define millions of different convolution kernels, it is not possible to enumerate and explain them all. Understanding a convolution kernel requires understanding Fourier analysis, I recommend that you find a book about that. For example Oppenheim and Willsky is a solid choice.

    – Cris Luengo
    Nov 28 '18 at 6:31













  • yes Cris. I feel this as a broad question. So the kernel derived is not done using Convolution Neural network backpropagation ?

    – SriHari SriHari.M
    Nov 28 '18 at 7:00






  • 1





    Ha! Interesting! I didn't expect that point of view... :) No, typically convolution kernels are designed for their desired properties. In a CNN, you get kernels that are designed by back propagation, but those kernels are specific to one network, and trying to understand their properties would be futile.

    – Cris Luengo
    Nov 28 '18 at 7:05






  • 2





    A convolution can be designed in the frequency domain (f.i. lowpass filtering makes a blurring effect), but applied in the spatial domain via a convolution.

    – Yves Daoust
    Nov 28 '18 at 8:45






  • 1





    Yes, convolving an image with a kernel can be done in the Fourier domain by transforming both, multiplying them, then inverse transforming the product. Because of this relationship, the Fourier domain is a great way to analyze and design linear filters: there the simple multiplication is easy to understand, you see what happens to each individual frequency component.

    – Cris Luengo
    Nov 28 '18 at 13:39














0












0








0








I am currently learning some of the kernels that can be used for image preprocessing. I can see that every kernel that we use have some predefined values for n*n matrix as stated in https://en.wikipedia.org/wiki/Kernel_(image_processing)



But what I wanted to understand is how are these kernels defined? Why we end up having values as stated in Wiki.



Please do help me in understanding this. Thank you in advance










share|improve this question
















I am currently learning some of the kernels that can be used for image preprocessing. I can see that every kernel that we use have some predefined values for n*n matrix as stated in https://en.wikipedia.org/wiki/Kernel_(image_processing)



But what I wanted to understand is how are these kernels defined? Why we end up having values as stated in Wiki.



Please do help me in understanding this. Thank you in advance







image-processing computer-vision filtering convolution






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 28 '18 at 7:05









Cris Luengo

21.8k52252




21.8k52252










asked Nov 28 '18 at 3:25









SriHari SriHari.MSriHari SriHari.M

14710




14710








  • 1





    This is really a broad question. You can define millions of different convolution kernels, it is not possible to enumerate and explain them all. Understanding a convolution kernel requires understanding Fourier analysis, I recommend that you find a book about that. For example Oppenheim and Willsky is a solid choice.

    – Cris Luengo
    Nov 28 '18 at 6:31













  • yes Cris. I feel this as a broad question. So the kernel derived is not done using Convolution Neural network backpropagation ?

    – SriHari SriHari.M
    Nov 28 '18 at 7:00






  • 1





    Ha! Interesting! I didn't expect that point of view... :) No, typically convolution kernels are designed for their desired properties. In a CNN, you get kernels that are designed by back propagation, but those kernels are specific to one network, and trying to understand their properties would be futile.

    – Cris Luengo
    Nov 28 '18 at 7:05






  • 2





    A convolution can be designed in the frequency domain (f.i. lowpass filtering makes a blurring effect), but applied in the spatial domain via a convolution.

    – Yves Daoust
    Nov 28 '18 at 8:45






  • 1





    Yes, convolving an image with a kernel can be done in the Fourier domain by transforming both, multiplying them, then inverse transforming the product. Because of this relationship, the Fourier domain is a great way to analyze and design linear filters: there the simple multiplication is easy to understand, you see what happens to each individual frequency component.

    – Cris Luengo
    Nov 28 '18 at 13:39














  • 1





    This is really a broad question. You can define millions of different convolution kernels, it is not possible to enumerate and explain them all. Understanding a convolution kernel requires understanding Fourier analysis, I recommend that you find a book about that. For example Oppenheim and Willsky is a solid choice.

    – Cris Luengo
    Nov 28 '18 at 6:31













  • yes Cris. I feel this as a broad question. So the kernel derived is not done using Convolution Neural network backpropagation ?

    – SriHari SriHari.M
    Nov 28 '18 at 7:00






  • 1





    Ha! Interesting! I didn't expect that point of view... :) No, typically convolution kernels are designed for their desired properties. In a CNN, you get kernels that are designed by back propagation, but those kernels are specific to one network, and trying to understand their properties would be futile.

    – Cris Luengo
    Nov 28 '18 at 7:05






  • 2





    A convolution can be designed in the frequency domain (f.i. lowpass filtering makes a blurring effect), but applied in the spatial domain via a convolution.

    – Yves Daoust
    Nov 28 '18 at 8:45






  • 1





    Yes, convolving an image with a kernel can be done in the Fourier domain by transforming both, multiplying them, then inverse transforming the product. Because of this relationship, the Fourier domain is a great way to analyze and design linear filters: there the simple multiplication is easy to understand, you see what happens to each individual frequency component.

    – Cris Luengo
    Nov 28 '18 at 13:39








1




1





This is really a broad question. You can define millions of different convolution kernels, it is not possible to enumerate and explain them all. Understanding a convolution kernel requires understanding Fourier analysis, I recommend that you find a book about that. For example Oppenheim and Willsky is a solid choice.

– Cris Luengo
Nov 28 '18 at 6:31







This is really a broad question. You can define millions of different convolution kernels, it is not possible to enumerate and explain them all. Understanding a convolution kernel requires understanding Fourier analysis, I recommend that you find a book about that. For example Oppenheim and Willsky is a solid choice.

– Cris Luengo
Nov 28 '18 at 6:31















yes Cris. I feel this as a broad question. So the kernel derived is not done using Convolution Neural network backpropagation ?

– SriHari SriHari.M
Nov 28 '18 at 7:00





yes Cris. I feel this as a broad question. So the kernel derived is not done using Convolution Neural network backpropagation ?

– SriHari SriHari.M
Nov 28 '18 at 7:00




1




1





Ha! Interesting! I didn't expect that point of view... :) No, typically convolution kernels are designed for their desired properties. In a CNN, you get kernels that are designed by back propagation, but those kernels are specific to one network, and trying to understand their properties would be futile.

– Cris Luengo
Nov 28 '18 at 7:05





Ha! Interesting! I didn't expect that point of view... :) No, typically convolution kernels are designed for their desired properties. In a CNN, you get kernels that are designed by back propagation, but those kernels are specific to one network, and trying to understand their properties would be futile.

– Cris Luengo
Nov 28 '18 at 7:05




2




2





A convolution can be designed in the frequency domain (f.i. lowpass filtering makes a blurring effect), but applied in the spatial domain via a convolution.

– Yves Daoust
Nov 28 '18 at 8:45





A convolution can be designed in the frequency domain (f.i. lowpass filtering makes a blurring effect), but applied in the spatial domain via a convolution.

– Yves Daoust
Nov 28 '18 at 8:45




1




1





Yes, convolving an image with a kernel can be done in the Fourier domain by transforming both, multiplying them, then inverse transforming the product. Because of this relationship, the Fourier domain is a great way to analyze and design linear filters: there the simple multiplication is easy to understand, you see what happens to each individual frequency component.

– Cris Luengo
Nov 28 '18 at 13:39





Yes, convolving an image with a kernel can be done in the Fourier domain by transforming both, multiplying them, then inverse transforming the product. Because of this relationship, the Fourier domain is a great way to analyze and design linear filters: there the simple multiplication is easy to understand, you see what happens to each individual frequency component.

– Cris Luengo
Nov 28 '18 at 13:39












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
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53511653%2fhow-convolution-kernels-are-defined%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
















draft saved

draft discarded




















































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.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53511653%2fhow-convolution-kernels-are-defined%23new-answer', 'question_page');
}
);

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







Popular posts from this blog

Lallio

Unable to find Lightning Node

Futebolista