我需要将图像加载到Matlab中,并将绿色的像素标记为1,并将其设为0,并显示最终图像。我怎样才能做到这一点?如何在Matlab中将绿色像素标记为1?
0
A
回答
2
这取决于图像上的位,以及确定像素是绿色的标准。像素必须只有绿色,但没有蓝色或红色?如果是这样,这是一种方法。
开始通过加载图像和分离颜色:
image = imread('your_image.jpg');
red = image(:,:,1);
green = image(:,:,2);
blue = image(:,:,3);
然后,找到具有像素绿色的,但不是红色或蓝色:
only_green = green & ~(red | blue)
如果你有一个绿色的定义不同像素,那么你可以相应地改变第二步。
要将生成的矩阵显示为图像,请使用imshow
。
1
为了使事情更有趣,我建议以下解决方案:
- 从RGB转换输入图像HSV。
- 标记HSV色彩空间中的绿色像素(在HSV色彩空间中,您可以选择其他颜色,如黄色(不仅是原色:红色,绿色,蓝色))。
为了强调环保,我设置多种颜色的灰度:
这里是我的代码:
RGB = imread('peppers.png');
HSV = rgb2hsv(RGB); %Convert RGB to HSV.
figure;imshow(RGB);title('Original');
%Convert from range [0, 1] to [0, 255] (kind of more intuitive...)
H = HSV(:, :, 1)*255;
S = HSV(:, :, 2)*255;
V = HSV(:, :, 3)*255;
%Initialize to zeros.
Green = zeros(size(H));
%Needed trial and error to find the correct range of green (after Google searching).
Green(H >= 38 & H <=160 & S >= 50 & V >= 30) = 1; %Set green pixels to 1
figure;imshow(Green);title('Mark Green as 1');
%Play with it a little...
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Gray = rgb2gray(RGB); %Convert to gray-scale
R = RGB(:, :, 1);
G = RGB(:, :, 2);
B = RGB(:, :, 3);
Green = logical(Green);
R(~Green) = Gray(~Green);
G(~Green) = Gray(~Green);
B(~Green) = Gray(~Green);
RGB = cat(3, R, G, B);
figure;imshow(RGB);title('Green and Gray');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
结果:
相关问题
- 1. 如何在Matlab中标记像素?
- 2. Heroku中的绿色标记
- 3. 如何将图像的背景颜色更改为绿色?
- 4. 绿色像素的颜色无效
- 5. MATLAB如何将轴坐标转换为像素坐标?
- 6. 如何打印其中一个像素的红色,绿色和蓝色值
- 7. Jpeg压缩人造体(绿色像素)
- 8. 在matlab中确定黑色像素为白色
- 9. matlab:找到500x500像素的绿色边缘的x-y位置.jpg图像
- 10. OpenCV将颜色设置为前景标记像素GC_PR_FGD
- 11. 在MATLAB中返回像素颜色
- 12. 将绿色转换为红色
- 13. 如何在MATLAB中使用LBP后得到0和1像素?
- 14. PHP GD库将合并图像从绿色变为橙色
- 15. 如果文件类型不存在,颜色标签为绿色
- 16. 如何生成签名的PDF不带绿色复选标记
- 17. 如何为像素着色?
- 18. Win32应用程序将像素变成全蓝,红或绿色
- 19. Android开关。如何将开启颜色更改为绿色
- 20. 在MATLAB中给出像素位置的像素颜色更改
- 21. 如何为平面1:1像素坐标系配置Openlayers?
- 22. 如何使用ColorMatrixFilter在位图中将橙色更改为绿色
- 23. 如何在MATLAB中将彩色图像转换为灰度图像?
- 24. 打开位置标记绿色,已关闭位置标记灰色?
- 25. 如何将JPG图像读入3个矩阵:红色,绿色,蓝色?
- 26. 我所要的输出像{ '红':1, '蓝':2, '绿':3} .I'm只得到{ '绿色':3}
- 27. 检查黑色像素在Matlab
- 28. Matlab:如何找到彩色图像中黑色像素的数量?
- 29. 如何在MATLAB中标记colorbar ticks?
- 30. 如何更改白色像素为黑色像素