Mon 20 Jul 2015 01:47:30 AM UTC, comment #5:
yes, sorry, didn't dig farther after seeing the conv2 in imfilter. so, with the same imfilter call, within filter2, here's the input to conv2 in Octave 4.0.0, heading into the following line of code (after [nr,nc]=size(b))
y = conv2 (x, b(nr:-1:1, nc:-1:1), shape);
Output in octave is:
same inputs into ML conv2 give:
So, we get the same answer from MLs conv2 as Octave's conv2.
|
Sun 19 Jul 2015 11:26:39 PM UTC, comment #4:
I also found that the function called filter2. But when I checked filter2 at my system (3.81), it called "conv2" but with the filter being "flipped". So if we could rule out conv2 behaving differently, then it would be enough to see how signal and filter is being treated up until the point of calling conv2.
|
Sun 19 Jul 2015 07:20:21 PM UTC, comment #3:
equivalent ML output from filter2 matches Octave filter2 output. So the error seems to be in what works its way to filter2.
|
Sun 19 Jul 2015 07:15:30 PM UTC, comment #2:
just doing a quick check on Felix's original code, it doesn't pass through the conv2 loop at line 121, it goes through filter2 code on line 117. (at least, setting a breakpoint at 121, it never hit it, but it calls 117
stopping at 117 here are the input parameters to filter two and the output of that function call, which is the returned value from imfilter. (I'll see if I can compare with ML soon)
|
Fri 17 Jul 2015 01:01:42 PM UTC, original submission:
There is a difference in the results of MATLAB and Octave for the imfilter() function when used with even filter-sizes.
Used versions:
Octave 4.0.0
image-2.4.0
Example Code:
Matlab-Result:
Octave-Result:
|