0

如何创建图像叠加层?更改边缘颜色:为了将边缘更改为绿色,起初我使用了“sobel”,但是覆盖部分有一个错误:“IMG 必须是灰度或 RGB 图像的数组:writeVideo(writer,double(out));” 为什么?

    out_red(BW)=0;
    out_green(BW)=255;
    out_blue(BW)=0;


    writeVideo(writer,double(uint8(out)));


close(writer);
4

2 回答 2

1

您错误地将整个 img 设置为每个颜色通道,它应该是这样的:

out_red=img(:,:,1);
out_green=img(:,:,2);
out_blue=img(:,:,3);

最后做writeVideo(writer, uint8(out));

于 2017-03-28T12:15:12.777 回答
0

尝试以下操作:

redChannel = inputImage(:, :, 1);
greenChannel = inputImage(:, :, 2);
blueChannel = inputImage(:, :, 3);
writeVideo(writer, uint8(out));

如果数据的范围是 {0, 1, 2, ..., 255},则该类writeVideo期望数据。 如果要使用或数据,则需要将其缩放回 [0, 1] 范围。uint8
singledouble

于 2017-03-28T10:28:24.023 回答