interp2 changes the value of pixels also
Ältere Kommentare anzeigen
I am using interp2 as below to defrom my image. It imeans I want the places of some pixels change according to us and uy. The problem is that when I use interp2 it changes the value of pixels also. In my image the value of pixels are only 0, 1 , 2 , 3 but when I read the image I get after interp2 some values such as 2.67 appears also. I do not aim to change the value of pixels. I only want to change the places of pixels with the previous values (defrom the image). Why this happens and is there any other approach?
donoutdef = interp2(xx,yy,double(donut),xx+ux,yy+uy)
Antworten (2)
Star Strider
am 19 Mai 2019
1 Stimme
‘In my image the value of pixels are only 0, 1 , 2 , 3 but when I read the image I get after interp2 some values such as 2.67 appears also. I do not aim to change the value of pixels.’
There are several ways to interpolate. If you want the interpolated values to be those of the closest pixel in your image, choose 'nearest' as the method. See the documentation section on method (link) for details.
KALYAN ACHARJYA
am 19 Mai 2019
Bearbeitet: KALYAN ACHARJYA
am 19 Mai 2019
0 Stimmen
Yes, those are the interpolated values. You have the image having pixels values are 0, 1 , 2 , 3, when you interpolated new pixels, the values of new pixels are depends on method of interpolation use. I dont see any issue here.
What is original size of the image?
What image size you are expecting after resize?
4 Kommentare
Golnoush Asaeikheybari
am 19 Mai 2019
Bearbeitet: Golnoush Asaeikheybari
am 19 Mai 2019
KALYAN ACHARJYA
am 19 Mai 2019
Bearbeitet: KALYAN ACHARJYA
am 19 Mai 2019
After image deformation, there may be some pixels are changed.
Suppose following is the image (please note image size 2x5)
0 1 0 2 0
3 2 0 1 3
Now what you want?
Golnoush Asaeikheybari
am 19 Mai 2019
Bearbeitet: Golnoush Asaeikheybari
am 19 Mai 2019
KALYAN ACHARJYA
am 19 Mai 2019
Bearbeitet: KALYAN ACHARJYA
am 19 Mai 2019
>> Image=[0 1 0 1 0;1 0 3 2 0]
Image =
0 1 0 1 0
1 0 3 2 0
>> Image(:,1:2)=NaN
Image =
NaN NaN 0 1 0
NaN NaN 3 2 0
>>
or if the image is very large, then go for interpolation (nearest method) as suggested by @StarStrider.
Kategorien
Mehr zu Read, Write, and Modify Image finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!