Subscript indices must either be real positive integers or logicals

I am trying to move values from an array to another. In particular I am taking the value of the red, green and blue of the specific pixel of the image using the command
img(x,y,:) %where img is my image
and I want to put it in an array defined as pix1 = zeros(3,1). When I do the simple equation pix1(:,1) = img(x,y,:) I get the error ' Subscript indices must either be real positive integers or logicals'. If I understood well this is due to the fact that the rgb values are floats? How do I get to put them in the array pix1 without rounding the value?
Thanks

5 Commenti

Elena - the RGB values (from your img matrix) can be floats but I think the error is more due to the x and y indices which you are using to access the data in img. How are these two variables being initialized? What are their values?
I am doing a for loop so the x,y values change, but I have just checked and it seems like it gives me the problem when x becomes 0. May this be the problem?
Yes, the indices must be greater than zero (positive integers). Why is x becoming zero?
I am rotating an image and then scrolling each pixel to do the bilinear interpolation with the four surrounding pixels. So I must get the value of the image at x = u-1 which at a certain point becomes zero. I guess I'll just shift the image so as to be constantly in the positive domain.

Accedi per commentare.

Richiesto:

EL
il 25 Ott 2017

Commentato:

il 25 Ott 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by