Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

finding minimum value in Quanterion matrix

Asked by FIR on 21 Dec 2012

I have a 386x514 quaternion array,in this please tell how to find the minimum value of that matrix

3 Comments

Walter Roberson on 21 Dec 2012

What does each element look like? Is there a reason you cannot just use min(TheMatrix(:)) ?

FIR on 21 Dec 2012

My form is 384x512 pure quaternion array with uint8 components

if i use min i get error

Undefined function or method 'min' for input arguments of type 'quaternion'.

Matt J on 21 Dec 2012

FIR Commented:

i downloaded [the quaternion] tool box from here

http://sourceforge.net/projects/qtfm/

FIR Commented:

Sorry Matt my code [which doesn't work] is

    A=imreadq('peppers.png');
    T=65;
    for i=2:6
        for j=2:6
            q= A(i-1:i+1,j-1:j+1);
            [minsum, minidx] = min( sum(abs(bsxfun(@minus, q(:), q(:).'))) );
            qVFM = q(minidx);
              V1=an equation
              V2=an equation
              S=min([V1 V1]);
              if S>T
                  THE CENTRE PIXEL IS REPLACED BY qVFM %%%%3x3 matrix
              else
                  THE CENTRE PIXEL IS not REPLACED BY qVFM%%%%3x3 matrix
              end
          end
      end
FIR

Products

No products are associated with this question.

1 Answer

Answer by Matt J on 21 Dec 2012
Edited by Matt J on 21 Dec 2012
Accepted answer

BSXFUN isn't overloaded well in the quaternion toolbox that you're using. Here is a workaround

 q= convert(A(i-1:i+1,j-1:j+1),'single');
[minsum, minidx] = min( sum(abs(   repmat(q(:),1,9)-repmat(q(:).',9,1)  ) ));

9 Comments

FIR on 22 Dec 2012
i have found 4 values using above equation
V1,V2,V3,V4
now i want to apply in code
A=imreadq('peppers.png');
    T=65;
    for i=2:6
        for j=2:6
            q= convert(A(i-1:i+1,j-1:j+1),'single');
[minsum, minidx] = min( sum(abs(   repmat(q(:),1,9)-repmat(q(:).',9,1)  ) ));
                S=min([V1 V2 V3 V4]);
                if S>T
                    THE CENTRE PIXEL OF QUANTERION ARRAY IS REPLACED BY minsum
                else
                    THE CENTRE PIXEL IS not REPLACED BY minsum
                end
            end
        end

please help,and original image must be added with noise,please assist

Matt J on 22 Dec 2012

Isn't the center pixel A(i,j)? If so, do A(i,j)=whatever.

Walter Roberson on 22 Dec 2012

Or, since that would affect the computations as you slid the window, create a second array and set the pixels in it -- as I showed you in one of your previous questions.

Matt J

Contact us