Image 在Matlab中复制图像时遇到的问题
我已经编写了Matlab代码来执行以下步骤:Image 在Matlab中复制图像时遇到的问题,image,matlab,Image,Matlab,我已经编写了Matlab代码来执行以下步骤: 阅读原始的小屋图片 获取其大小 显示曲线拟合的x值 把原图复制一份 遍历天空所在的前70行。使用函数polyfit和 逐个迭代每种颜色 多项式近似需要每行作为双向量 计算合成行 把这一排放到新的天空 结束循环 显示新图像 显示旧图像 我已经对它进行了测试和调试,似乎复制输入图像的代码部分不起作用。代码如下: function (imageName) inputImage = imread(imageName); [sizeX,sizeY,~] =
function (imageName)
inputImage = imread(imageName);
[sizeX,sizeY,~] = size(inputImage);
copyImage = ones(sizeX,sizeY,3);
for i=1:sizeX
for j=1:sizeY
for d=1:3
copyImage(i,j,d)= inputImage(i,j,d);
end
end
end
for r = 1:70
for co = 1:3
var1 = 1:sizeY;
var2 = copyImage(r,:,co);
P = polyfit(var1,var2,2);
Y = polyval(P,var1);
copyImage(r,:,co) = Y;
end
end
imshow(copyImage);
end
谁能告诉我复制输入图像的方式有什么问题吗?谢谢 这是数字格式的问题,在显示之前将其更改为uint8:
imshow(uint8(copyImage));
一个简单的
copyImage=inputImage
将进行复制,无需循环。显然,您犯的错误是,当图像位于uint8
中时,将copyImage
初始化为double。可以在imshow
阶段取消该效果,但首先不需要引入它。