Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 在Matlab中复制图像时遇到的问题_Image_Matlab - Fatal编程技术网

Image 在Matlab中复制图像时遇到的问题

Image 在Matlab中复制图像时遇到的问题,image,matlab,Image,Matlab,我已经编写了Matlab代码来执行以下步骤: 阅读原始的小屋图片 获取其大小 显示曲线拟合的x值 把原图复制一份 遍历天空所在的前70行。使用函数polyfit和 逐个迭代每种颜色 多项式近似需要每行作为双向量 计算合成行 把这一排放到新的天空 结束循环 显示新图像 显示旧图像 我已经对它进行了测试和调试,似乎复制输入图像的代码部分不起作用。代码如下: function (imageName) inputImage = imread(imageName); [sizeX,sizeY,~] =

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

  • 阅读原始的小屋图片
  • 获取其大小
  • 显示曲线拟合的x值
  • 把原图复制一份
  • 遍历天空所在的前70行。使用函数polyfit和
  • 逐个迭代每种颜色
  • 多项式近似需要每行作为双向量
  • 计算合成行
  • 把这一排放到新的天空
  • 结束循环
  • 显示新图像
  • 显示旧图像
  • 我已经对它进行了测试和调试,似乎复制输入图像的代码部分不起作用。代码如下:

    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
    阶段取消该效果,但首先不需要引入它。