如何区分尿液试纸颜色?

How can I segment urine strip colors?

我正在尝试提取尿液分析试纸的颜色来分析它们,并且需要分割颜色区域以获得可靠的解决方案。

目前,我使用的是距离顶部近似值的硬编码距离。 我已经尝试过使用自适应阈值,如果不检测背景噪声、加入多种颜色或根本不检测某些颜色,就无法正确分割颜色。

我认为你有点过于复杂了:你的问题本质上是一个一维问题:你可以查看图像每行的平均颜色,这应该会给你一个干净且更强大的版本来工作在:

img = imread('http://i.imgur.com/mhGA3hp.jpg');
img = im2double(img);
avg = mean(img,2);
imshow(bsxfun(@times, avg, ones(1,50,3)));

结果:

我相信您会发现使用图像的 1D 干净版本更容易。