gpt4 book ai didi

matlab - 根据颜色分割图像中的像素 (Matlab)

转载 作者:太空宇宙 更新时间:2023-11-03 19:33:04 25 4
gpt4 key购买 nike

我正在尝试仅使用颜色信息(目前)对包含多个乐高积木的图像进行分割。目的是找到乐高积木,例如是绿色的。我曾尝试使用 k-means 聚类,但给定的不同颜色砖 block 的数量各不相同。我还尝试使用 Matlab website 中的以下示例

但这并不成功。有没有一种简单的基于颜色的分割方法?

问题的示例图像:

enter image description here

最佳答案

因此,仅根据颜色选择区域时,RGB 或 LAB 色彩空间并不是真正的最佳选择。更好的选择是 HSV(Hue-Saturation-Value)。在这里我们可以定义什么色调范围定义“绿色”,饱和度参数定义什么是“彩色”像素,以及最小区域大小。然后根据这些值进行一些阈值处理、一些形态学过滤以及在绘图之前返回的区域过滤。一贯的套路。

下面的代码检测您提供的图像中的绿色砖 block 。它不是很完美,因为相邻的砖 block 作为单个区域返回,但是您可以使用边缘过滤器在这些检测到的区域内进行一些更详尽的工作,例如,最终得到砖 block 数量的精确计数。

% Input image
img = imread('http://i.stack.imgur.com/HSYc1.jpg');

greenRange = [0.4 0.5]; % Range of hue values considered 'green'
minSat = 0.5; % Minimum saturation value for 'colored' pixels to exclude bkgd noise
minRegionsize = 500; % Min size for a single block

%%%%%%%%%%%%%%%%%%%
% Denoise with a gaussian blur
imgfilt = imfilter(img, fspecial('gaussian', 10, 2));
% Convert image to HSV format
hsvImg = rgb2hsv(imgfilt);

% Threshold hue to get only green pixels and saturation for only colored
% pixels
greenBin = hsvImg(:,:,1) > greenRange(1) & hsvImg(:,:,1) < greenRange(2) & hsvImg(:,:,2) > minSat;
greenBin = bwmorph(greenBin, 'close'); % Morphological closing to take care of some of the noisy thresholding

% Use regionprops to filter based on area, return location of green blocks
regs = regionprops(greenBin, 'Area', 'Centroid', 'BoundingBox');
% Remove every region smaller than minRegionSize
regs(vertcat(regs.Area) < minRegionsize) = [];

% Display image with bounding boxes overlaid
figure()
image(img);
axis image
hold on
for k = 1:length(regs)
plot(regs(k).Centroid(1), regs(k).Centroid(2), 'cx');

boundBox = repmat(regs(k).BoundingBox(1:2), 5, 1) + ...
[0 0; ...
regs(k).BoundingBox(3) 0;...
regs(k).BoundingBox(3) regs(k).BoundingBox(4);...
0 regs(k).BoundingBox(4);...
0 0];
plot(boundBox(:,1), boundBox(:,2), 'r');
end
hold off

enter image description here

关于matlab - 根据颜色分割图像中的像素 (Matlab),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28004426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com