私の仕事の 1 つは、16000 枚の画像からアリのコロニーの色を検出することです。それで、私はすでに青、ピンク、緑でうまくやっていますが、今はオレンジ色の検出を改善する必要があります. 私は画像処理の分野では初めてなので、少し難しいです。私がやったことと私の問題は何かをいくつか例に挙げました。
生画像:http://img705.imageshack.us/img705/2257/img4263u.jpg
オレンジ色の検出:http://img72.imageshack.us/img72/8197/orangedetection.jpg
緑色の検出: http://img585.imageshack.us/img585/1347/greendetection.jpg
selectPixelsAndGetHSV.m を使用して HSV 値を取得し、その後 colorDetectHSV.m を使用して同じ HSV 値を持つピクセルを検出しました。オレンジ色の検出を改善し、周囲のアリやひな全体を検出しないようにする方法を教えてください。
前もって感謝します!
function [K]=colorDetectHSV(RGB, hsvVal, tol)
HSV = rgb2hsv(RGB);
% find the difference between required and real H value:
diffH = abs(HSV(:,:,1) - hsvVal(1));
[M,N,t] = size(RGB);
I1 = zeros(M,N); I2 = zeros(M,N); I3 = zeros(M,N);
T1 = tol(1);
I1( find(diffH < T1) ) = 1;
if (length(tol)>1)
% find the difference between required and real S value:
diffS = abs(HSV(:,:,2) - hsvVal(2));
T2 = tol(2);
I2( find(diffS < T2) ) = 1;
if (length(tol)>2)
% find the difference between required and real V value:
difV = HSV(:,:,3) - hsvVal(3);
T3 = tol(3);
I3( find(diffS < T3) ) = 1;
I = I1.*I2.*I3;
else
I = I1.*I2;
end
else
I = I1;
end
K=~I;
subplot(2,1,1),
figure,imshow(RGB); title('Original Image');
subplot(2,1,2),
figure,imshow(~I,[]); title('Detected Areas');