无需登录网页小游戏网站,推广软文平台,wordpress登录后可见,自助建网站代理一段时间后#xff0c;我在MATLAB Image Processing Toolbox中通过了imresize功能的代码#xff0c;为图像的最近邻插值创建了一个简化版本。以下是如何应用于您的问题#xff1a;%# Initializations:scale [2 2]; %# The resolution scale factors: [rows columns]oldSize…一段时间后我在MATLAB Image Processing Toolbox中通过了imresize功能的代码为图像的最近邻插值创建了一个简化版本。以下是如何应用于您的问题%# Initializations:scale [2 2]; %# The resolution scale factors: [rows columns]oldSize size(inputImage); %# Get the size of your imagenewSize max(floor(scale.*oldSize(1:2)),1); %# Compute the new image size%# Compute an upsampled set of indices:rowIndex min(round(((1:newSize(1))-0.5)./scale(1)0.5),oldSize(1));colIndex min(round(((1:newSize(2))-0.5)./scale(2)0.5),oldSize(2));%# Index old image to get new image:outputImage inputImage(rowIndex,colIndex,:);另一个选择是使用内置的interp2功能尽管您提到不想在其中一个注释中使用内置函数。编辑解释如果有人有兴趣我以为我会解释上面的解决方案如何工作newSize max(floor(scale.*oldSize(1:2)),1);首先要获取新的行和列大小将旧的行和列大小乘以比例因子。该结果向下取整为floor的最接近的整数。如果比例因子小于1您可能会遇到一个奇怪的大小值之一为0的情况这就是为什么调用max可以替换任何更少的值比1与1。rowIndex min(round(((1:newSize(1))-0.5)./scale(1)0.5),oldSize(1));colIndex min(round(((1:newSize(2))-0.5)./scale(2)0.5),oldSize(2));接下来为行和列计算新的一组索引。首先计算一组用于上采样图像的索引1newSize(…)。每个图像像素被认为具有给定的宽度使得像素1跨越0到1像素2从1到2等等。因此像素的“坐标”被视为中心这就是为什么0.5从指数中减去。然后将这些坐标除以比例因子以给出原始图像的一组像素中心坐标然后将其添加到它们中并被舍入以获得原始图像的整数指数集合。对min的调用确保这些索引中没有一个大于原始图像大小oldSize(…)。outputImage inputImage(rowIndex,colIndex,:);最后通过简单索引到原始图像来创建新的上采样图像。