【问题标题】:Trouble with Copying Image in Matlab在 Matlab 中复制图像的问题
【发布时间】:2018-04-14 17:52:47
【问题描述】:

我已经编写了 Matlab 代码来执行以下步骤:

  1. 阅读山寨原图。
  2. 获取其大小。
  3. 显示曲线拟合的 x 值。
  4. 复制原始图片。
  5. 遍历天空所在的前 70 行。使用函数 polyfit 和 .
  6. 单独遍历每种颜色。
  7. 多项式逼近需要将每一行作为一个双向量。
  8. 计算合成行。
  9. 将行带入新的天空。
  10. 结束循环
  11. 显示新图像。
  12. 显示旧图像。

我已经对其进行了测试和调试,但复制输入图像的代码部分似乎无法正常工作。代码如下:

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  

谁能告诉我如何复制输入图像有什么问题?谢谢。

【问题讨论】:

  • 一个简单的copyImage = inputImage 将制作副本,无需循环。当您的图像位于uint8 中时,您显然犯的错误是将copyImage 初始化为双精度。效果可以在imshow阶段取消,但首先不需要引入。

标签: image matlab


【解决方案1】:

这是数字格式的问题,显示前先改成uint8:

imshow(uint8(copyImage));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 2011-07-18
    • 2017-01-27
    相关资源
    最近更新 更多