MATLAB图像处理l*a*b颜色空间。标记自定义颜色
我在MATLAB图像处理l*a*b颜色空间。标记自定义颜色,matlab,image-processing,Matlab,Image Processing,我在l*a*b空间中有一个(matlab)图像。我想用特定的l、a和b值标记区域。例如,所有具有l=80、a=50和b=90的区域都应在图像上标记并标记为“C1”。类似地,匹配l=40、a=70和b=80的区域应在图像上标记并标记为“C2”。我被打动了,因为大约有10种颜色我必须找到和标记 请帮忙。为什么你不能直接写newImg(l_频道==80&&a_频道==50&&b_频道==90)=C1?其中,l_通道是实验室颜色空间图像中的第一个通道。例如,如果您对指定给区域的值有明确要求,则可能希望将
l*a*b
空间中有一个(matlab)图像。我想用特定的l
、a
和b
值标记区域。例如,所有具有l=80
、a=50
和b=90
的区域都应在图像上标记并标记为“C1”。类似地,匹配l=40
、a=70
和b=80
的区域应在图像上标记并标记为“C2”。我被打动了,因为大约有10种颜色我必须找到和标记
请帮忙。为什么你不能直接写
newImg(l_频道==80&&a_频道==50&&b_频道==90)=C1
?其中,l_通道是实验室颜色空间图像中的第一个通道。例如,如果您对指定给区域的值有明确要求,则可能希望将区域标记为2,但将其标记为8。所有不相交的区域仍将获得不同的值。如果这是可以的,那么您可以使用put所有10个条件由或运算符分隔(使用上述注释中的语句,C1=1和newImg
初始化为零矩阵),然后使用bwlab
多谢段落。我试图这样添加:“code”orig=imread('mypic.jpg');cform=makecform('srgb2lab');c=应用程序表单(原始,cform);L=c(:,:,1);A=c(:,:,2);B=c(:,:,3);newImg=(L==54&A==65&B==40);imshow(newImg)“代码”,但它给出了一个暗图像。我只检查了一种颜色,它存在于图像上。有什么帮助吗?您确定颜色存在于实验室颜色空间图像中,即c
?我试过这段代码,它是有效的:img=imread('peppers.png');cform=makecform('srgb2lab');c=应用形式((img),cform);L=c(:,:,1);A=c(:,:,2);B=c(:,:,3);newImg=(L==194&A==155&B==207);imshow(newImg)
您可以直接在MATLAB中运行代码,peppers.png
是MATLAB中的默认图像。另外,请阅读我的第二条评论:“如果您不具体…”