Filter that gives the max change in matrix value
$begingroup$
I have a 3x3 matrix, I want to find the maximum change in value that any one element in the vector has with the centre element (given that this element has the opposite sign to the centre element).
Out of curiosity, would there be a filter that I could convolve with the matrix, which would give me this output?
say I have this matrix:
begin{bmatrix}
1 & 2 & 3\
2 &-1 & 3\
1 & 5& 2
end{bmatrix}
would there be a filter that could give the output $6$?
matrices convolution image-processing
$endgroup$
add a comment |
$begingroup$
I have a 3x3 matrix, I want to find the maximum change in value that any one element in the vector has with the centre element (given that this element has the opposite sign to the centre element).
Out of curiosity, would there be a filter that I could convolve with the matrix, which would give me this output?
say I have this matrix:
begin{bmatrix}
1 & 2 & 3\
2 &-1 & 3\
1 & 5& 2
end{bmatrix}
would there be a filter that could give the output $6$?
matrices convolution image-processing
$endgroup$
add a comment |
$begingroup$
I have a 3x3 matrix, I want to find the maximum change in value that any one element in the vector has with the centre element (given that this element has the opposite sign to the centre element).
Out of curiosity, would there be a filter that I could convolve with the matrix, which would give me this output?
say I have this matrix:
begin{bmatrix}
1 & 2 & 3\
2 &-1 & 3\
1 & 5& 2
end{bmatrix}
would there be a filter that could give the output $6$?
matrices convolution image-processing
$endgroup$
I have a 3x3 matrix, I want to find the maximum change in value that any one element in the vector has with the centre element (given that this element has the opposite sign to the centre element).
Out of curiosity, would there be a filter that I could convolve with the matrix, which would give me this output?
say I have this matrix:
begin{bmatrix}
1 & 2 & 3\
2 &-1 & 3\
1 & 5& 2
end{bmatrix}
would there be a filter that could give the output $6$?
matrices convolution image-processing
matrices convolution image-processing
edited Dec 12 '18 at 14:30
Arthur
116k7116199
116k7116199
asked Dec 12 '18 at 14:19
HdotHdot
82
82
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
$begingroup$
No, because the function $f$ that you are interested in is a nonlinear function of the input matrix, while convolving matrices $A, B$ with a filter $F$ would always satisfy $$convolve(F, A+B) = convolve(F, A) + convolve(F, B).$$
To see that the function you are interested in is nonlinear, consider the sum of two matrices
$$ A+ B =
left[begin{array}{ccc}
0 & 0 & 0 \
0 & -1 & 0 \
0 & 5 & 0 \
end{array}right] +
left[begin{array}{ccc}
0 & 4 & 0 \
0 & -2 & 0 \
0 & 0 & 0 \
end{array}right] =
left[begin{array}{ccc}
0 & 4 & 0 \
0 & -3 & 0 \
0 & 5 & 0 \
end{array}right]
$$
Then $f(A)=6$, $f(B)=6$, but $f(A+B) = 8 neq 6+6$.
$endgroup$
$begingroup$
A filter is not necessarily linear. There exist many non-linear filters.
$endgroup$
– Cris Luengo
Dec 16 '18 at 15:48
$begingroup$
The question was asking about convolution. Convolution is distributive with respect to sums: en.wikipedia.org/wiki/Convolution#Algebraic_properties
$endgroup$
– Vincenzo
Dec 16 '18 at 17:38
$begingroup$
Yes, convolution is a linear filter. But it is likely that OP mentioned convolution because of unfamiliarity with non-linear filtering. OP calls the convolution kernel a filter.
$endgroup$
– Cris Luengo
Dec 16 '18 at 17:51
add a comment |
$begingroup$
There is a sub-field if image processing called Mathematical Morphology. In this field, we focus on non-linear filters based on max and min operators.
One of the basic filters is thus the dilation, a local maximum filter. Think of a convolution, but instead of multiplying kernel values to image values and adding up the results, we add kernel values to the image values and take the maximum of the result.
With a kernel that is composed of only zeros, this turns into finding the maximum pixel value in a neighborhood.
Using a 3x3 square neighborhood, we obtain the maximum value over the neighboring elements. Subtracting the input, we obtain the largest difference of a pixel with its neighbors.
This difference is not symmetric. That is, if you invert the image by negating each pixel, you would get a different result. By adding in the opposite operation (erosion, a local minimum), it is possible to make the difference symmetric:
$$ left( delta(f)-f right) vee left( f-epsilon(f) right)$$
($delta$ is the dilation, $epsilon$ is the erosion, $f$ is the image, and $vee$ is the supremum/maximum)
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
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
},
noCode: 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%2fmath.stackexchange.com%2fquestions%2f3036739%2ffilter-that-gives-the-max-change-in-matrix-value%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
No, because the function $f$ that you are interested in is a nonlinear function of the input matrix, while convolving matrices $A, B$ with a filter $F$ would always satisfy $$convolve(F, A+B) = convolve(F, A) + convolve(F, B).$$
To see that the function you are interested in is nonlinear, consider the sum of two matrices
$$ A+ B =
left[begin{array}{ccc}
0 & 0 & 0 \
0 & -1 & 0 \
0 & 5 & 0 \
end{array}right] +
left[begin{array}{ccc}
0 & 4 & 0 \
0 & -2 & 0 \
0 & 0 & 0 \
end{array}right] =
left[begin{array}{ccc}
0 & 4 & 0 \
0 & -3 & 0 \
0 & 5 & 0 \
end{array}right]
$$
Then $f(A)=6$, $f(B)=6$, but $f(A+B) = 8 neq 6+6$.
$endgroup$
$begingroup$
A filter is not necessarily linear. There exist many non-linear filters.
$endgroup$
– Cris Luengo
Dec 16 '18 at 15:48
$begingroup$
The question was asking about convolution. Convolution is distributive with respect to sums: en.wikipedia.org/wiki/Convolution#Algebraic_properties
$endgroup$
– Vincenzo
Dec 16 '18 at 17:38
$begingroup$
Yes, convolution is a linear filter. But it is likely that OP mentioned convolution because of unfamiliarity with non-linear filtering. OP calls the convolution kernel a filter.
$endgroup$
– Cris Luengo
Dec 16 '18 at 17:51
add a comment |
$begingroup$
No, because the function $f$ that you are interested in is a nonlinear function of the input matrix, while convolving matrices $A, B$ with a filter $F$ would always satisfy $$convolve(F, A+B) = convolve(F, A) + convolve(F, B).$$
To see that the function you are interested in is nonlinear, consider the sum of two matrices
$$ A+ B =
left[begin{array}{ccc}
0 & 0 & 0 \
0 & -1 & 0 \
0 & 5 & 0 \
end{array}right] +
left[begin{array}{ccc}
0 & 4 & 0 \
0 & -2 & 0 \
0 & 0 & 0 \
end{array}right] =
left[begin{array}{ccc}
0 & 4 & 0 \
0 & -3 & 0 \
0 & 5 & 0 \
end{array}right]
$$
Then $f(A)=6$, $f(B)=6$, but $f(A+B) = 8 neq 6+6$.
$endgroup$
$begingroup$
A filter is not necessarily linear. There exist many non-linear filters.
$endgroup$
– Cris Luengo
Dec 16 '18 at 15:48
$begingroup$
The question was asking about convolution. Convolution is distributive with respect to sums: en.wikipedia.org/wiki/Convolution#Algebraic_properties
$endgroup$
– Vincenzo
Dec 16 '18 at 17:38
$begingroup$
Yes, convolution is a linear filter. But it is likely that OP mentioned convolution because of unfamiliarity with non-linear filtering. OP calls the convolution kernel a filter.
$endgroup$
– Cris Luengo
Dec 16 '18 at 17:51
add a comment |
$begingroup$
No, because the function $f$ that you are interested in is a nonlinear function of the input matrix, while convolving matrices $A, B$ with a filter $F$ would always satisfy $$convolve(F, A+B) = convolve(F, A) + convolve(F, B).$$
To see that the function you are interested in is nonlinear, consider the sum of two matrices
$$ A+ B =
left[begin{array}{ccc}
0 & 0 & 0 \
0 & -1 & 0 \
0 & 5 & 0 \
end{array}right] +
left[begin{array}{ccc}
0 & 4 & 0 \
0 & -2 & 0 \
0 & 0 & 0 \
end{array}right] =
left[begin{array}{ccc}
0 & 4 & 0 \
0 & -3 & 0 \
0 & 5 & 0 \
end{array}right]
$$
Then $f(A)=6$, $f(B)=6$, but $f(A+B) = 8 neq 6+6$.
$endgroup$
No, because the function $f$ that you are interested in is a nonlinear function of the input matrix, while convolving matrices $A, B$ with a filter $F$ would always satisfy $$convolve(F, A+B) = convolve(F, A) + convolve(F, B).$$
To see that the function you are interested in is nonlinear, consider the sum of two matrices
$$ A+ B =
left[begin{array}{ccc}
0 & 0 & 0 \
0 & -1 & 0 \
0 & 5 & 0 \
end{array}right] +
left[begin{array}{ccc}
0 & 4 & 0 \
0 & -2 & 0 \
0 & 0 & 0 \
end{array}right] =
left[begin{array}{ccc}
0 & 4 & 0 \
0 & -3 & 0 \
0 & 5 & 0 \
end{array}right]
$$
Then $f(A)=6$, $f(B)=6$, but $f(A+B) = 8 neq 6+6$.
answered Dec 12 '18 at 14:53
VincenzoVincenzo
1916
1916
$begingroup$
A filter is not necessarily linear. There exist many non-linear filters.
$endgroup$
– Cris Luengo
Dec 16 '18 at 15:48
$begingroup$
The question was asking about convolution. Convolution is distributive with respect to sums: en.wikipedia.org/wiki/Convolution#Algebraic_properties
$endgroup$
– Vincenzo
Dec 16 '18 at 17:38
$begingroup$
Yes, convolution is a linear filter. But it is likely that OP mentioned convolution because of unfamiliarity with non-linear filtering. OP calls the convolution kernel a filter.
$endgroup$
– Cris Luengo
Dec 16 '18 at 17:51
add a comment |
$begingroup$
A filter is not necessarily linear. There exist many non-linear filters.
$endgroup$
– Cris Luengo
Dec 16 '18 at 15:48
$begingroup$
The question was asking about convolution. Convolution is distributive with respect to sums: en.wikipedia.org/wiki/Convolution#Algebraic_properties
$endgroup$
– Vincenzo
Dec 16 '18 at 17:38
$begingroup$
Yes, convolution is a linear filter. But it is likely that OP mentioned convolution because of unfamiliarity with non-linear filtering. OP calls the convolution kernel a filter.
$endgroup$
– Cris Luengo
Dec 16 '18 at 17:51
$begingroup$
A filter is not necessarily linear. There exist many non-linear filters.
$endgroup$
– Cris Luengo
Dec 16 '18 at 15:48
$begingroup$
A filter is not necessarily linear. There exist many non-linear filters.
$endgroup$
– Cris Luengo
Dec 16 '18 at 15:48
$begingroup$
The question was asking about convolution. Convolution is distributive with respect to sums: en.wikipedia.org/wiki/Convolution#Algebraic_properties
$endgroup$
– Vincenzo
Dec 16 '18 at 17:38
$begingroup$
The question was asking about convolution. Convolution is distributive with respect to sums: en.wikipedia.org/wiki/Convolution#Algebraic_properties
$endgroup$
– Vincenzo
Dec 16 '18 at 17:38
$begingroup$
Yes, convolution is a linear filter. But it is likely that OP mentioned convolution because of unfamiliarity with non-linear filtering. OP calls the convolution kernel a filter.
$endgroup$
– Cris Luengo
Dec 16 '18 at 17:51
$begingroup$
Yes, convolution is a linear filter. But it is likely that OP mentioned convolution because of unfamiliarity with non-linear filtering. OP calls the convolution kernel a filter.
$endgroup$
– Cris Luengo
Dec 16 '18 at 17:51
add a comment |
$begingroup$
There is a sub-field if image processing called Mathematical Morphology. In this field, we focus on non-linear filters based on max and min operators.
One of the basic filters is thus the dilation, a local maximum filter. Think of a convolution, but instead of multiplying kernel values to image values and adding up the results, we add kernel values to the image values and take the maximum of the result.
With a kernel that is composed of only zeros, this turns into finding the maximum pixel value in a neighborhood.
Using a 3x3 square neighborhood, we obtain the maximum value over the neighboring elements. Subtracting the input, we obtain the largest difference of a pixel with its neighbors.
This difference is not symmetric. That is, if you invert the image by negating each pixel, you would get a different result. By adding in the opposite operation (erosion, a local minimum), it is possible to make the difference symmetric:
$$ left( delta(f)-f right) vee left( f-epsilon(f) right)$$
($delta$ is the dilation, $epsilon$ is the erosion, $f$ is the image, and $vee$ is the supremum/maximum)
$endgroup$
add a comment |
$begingroup$
There is a sub-field if image processing called Mathematical Morphology. In this field, we focus on non-linear filters based on max and min operators.
One of the basic filters is thus the dilation, a local maximum filter. Think of a convolution, but instead of multiplying kernel values to image values and adding up the results, we add kernel values to the image values and take the maximum of the result.
With a kernel that is composed of only zeros, this turns into finding the maximum pixel value in a neighborhood.
Using a 3x3 square neighborhood, we obtain the maximum value over the neighboring elements. Subtracting the input, we obtain the largest difference of a pixel with its neighbors.
This difference is not symmetric. That is, if you invert the image by negating each pixel, you would get a different result. By adding in the opposite operation (erosion, a local minimum), it is possible to make the difference symmetric:
$$ left( delta(f)-f right) vee left( f-epsilon(f) right)$$
($delta$ is the dilation, $epsilon$ is the erosion, $f$ is the image, and $vee$ is the supremum/maximum)
$endgroup$
add a comment |
$begingroup$
There is a sub-field if image processing called Mathematical Morphology. In this field, we focus on non-linear filters based on max and min operators.
One of the basic filters is thus the dilation, a local maximum filter. Think of a convolution, but instead of multiplying kernel values to image values and adding up the results, we add kernel values to the image values and take the maximum of the result.
With a kernel that is composed of only zeros, this turns into finding the maximum pixel value in a neighborhood.
Using a 3x3 square neighborhood, we obtain the maximum value over the neighboring elements. Subtracting the input, we obtain the largest difference of a pixel with its neighbors.
This difference is not symmetric. That is, if you invert the image by negating each pixel, you would get a different result. By adding in the opposite operation (erosion, a local minimum), it is possible to make the difference symmetric:
$$ left( delta(f)-f right) vee left( f-epsilon(f) right)$$
($delta$ is the dilation, $epsilon$ is the erosion, $f$ is the image, and $vee$ is the supremum/maximum)
$endgroup$
There is a sub-field if image processing called Mathematical Morphology. In this field, we focus on non-linear filters based on max and min operators.
One of the basic filters is thus the dilation, a local maximum filter. Think of a convolution, but instead of multiplying kernel values to image values and adding up the results, we add kernel values to the image values and take the maximum of the result.
With a kernel that is composed of only zeros, this turns into finding the maximum pixel value in a neighborhood.
Using a 3x3 square neighborhood, we obtain the maximum value over the neighboring elements. Subtracting the input, we obtain the largest difference of a pixel with its neighbors.
This difference is not symmetric. That is, if you invert the image by negating each pixel, you would get a different result. By adding in the opposite operation (erosion, a local minimum), it is possible to make the difference symmetric:
$$ left( delta(f)-f right) vee left( f-epsilon(f) right)$$
($delta$ is the dilation, $epsilon$ is the erosion, $f$ is the image, and $vee$ is the supremum/maximum)
answered Dec 16 '18 at 15:58
Cris LuengoCris Luengo
1728
1728
add a comment |
add a comment |
Thanks for contributing an answer to Mathematics Stack Exchange!
- 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.
Use MathJax to format equations. MathJax reference.
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%2fmath.stackexchange.com%2fquestions%2f3036739%2ffilter-that-gives-the-max-change-in-matrix-value%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