interp2 changes the value of pixels also
2 次查看(过去 30 天)
显示 更早的评论
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)
0 个评论
回答(2 个)
Star Strider
2019-5-19
‘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.
0 个评论
KALYAN ACHARJYA
2019-5-19
编辑:KALYAN ACHARJYA
2019-5-19
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 个评论
KALYAN ACHARJYA
2019-5-19
编辑:KALYAN ACHARJYA
2019-5-19
>> 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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Read, Write, and Modify Image 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!