如何创建图像叠加层?改变边缘颜色

How create image overlays? change edges color

如何创建图像叠加层?改变边缘颜色: 为了将边缘更改为绿色,起初我使用 'sobel' 但是叠加部分有一个错误:"IMG must be an array of either grayscale or RGB images: writeVideo(writer,double(out));" 为什么?

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


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


close(writer);

尝试以下操作:

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

如果范围为 {0, 1, 2, ..., 255},writeVideo class 期望数据为 uint8
如果您想使用 singledouble 数据,您需要将其缩小到 [0, 1] 范围。

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

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

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