Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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
Matlab 如何将原始颜色返回到二值化图像?_Matlab_Image Processing - Fatal编程技术网

Matlab 如何将原始颜色返回到二值化图像?

Matlab 如何将原始颜色返回到二值化图像?,matlab,image-processing,Matlab,Image Processing,我有一个RGB图像,我已经处理和二值化,现在我想返回的原始颜色只为地区,现在是白色的二值化图像。 有可能吗 我尝试过执行以下代码,首先我将数据类型从logical转换为double,然后我尝试返回原始颜色,但这似乎不起作用。生成的图像是完全白色的图像 rz = double(rz); rz(:,:,3)=I2(:,:,3); rz(:,:,2)=I2(:,:,2); rz(:,:,1)=I2(:,:,1); rz是二值化图像,I2是原始RGB图像 是否可以仅为二值化图像上的白色区域返回原始颜色

我有一个RGB图像,我已经处理和二值化,现在我想返回的原始颜色只为地区,现在是白色的二值化图像。 有可能吗

我尝试过执行以下代码,首先我将数据类型从logical转换为double,然后我尝试返回原始颜色,但这似乎不起作用。生成的图像是完全白色的图像

rz = double(rz);
rz(:,:,3)=I2(:,:,3);
rz(:,:,2)=I2(:,:,2);
rz(:,:,1)=I2(:,:,1);
rz
是二值化图像,
I2
是原始RGB图像


是否可以仅为二值化图像上的白色区域返回原始颜色?我做错了什么?

假设
rz
是逻辑NxMx1图像(即,在每个维度上没有不同的二值化)


他做这项工作。基本上,您可以将
rz
转换为double,然后将其与
Iout
的每个颜色通道相乘(使用
bsxfun
)。如果遮罩在该像素中为零,则生成的图像将具有颜色
[0,0,0]

什么是
大小(rz)
?您好@AnderBiguri,
rz
的大小是171x181Hi@AnderBiguri,谢谢您的回答!我尝试了你的代码,但它说“不支持使用bsxfun混合整数类输入时出错”。@inavas这是因为你的图像实际上不是双精度的。什么是
class(I2)
?Hi@AnderBiguri,
I2
是uint8.Hi@AnderBiguri。对谢谢!它工作得很好。
Iout=I2;
Iout=bsxfun(@times,Iout,uint8(rz))