如何创建图像叠加层?更改边缘颜色:为了将边缘更改为绿色,起初我使用了“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);
您错误地将整个 img 设置为每个颜色通道,它应该是这样的:
out_red=img(:,:,1);
out_green=img(:,:,2);
out_blue=img(:,:,3);
最后做writeVideo(writer, uint8(out));
尝试以下操作:
redChannel = inputImage(:, :, 1);
greenChannel = inputImage(:, :, 2);
blueChannel = inputImage(:, :, 3);
writeVideo(writer, uint8(out));
如果数据的范围是 {0, 1, 2, ..., 255},则该类writeVideo
期望数据。
如果要使用或数据,则需要将其缩放回 [0, 1] 范围。uint8
single
double