ตรวจจับวัตถุใช้ HSV ด้วย MATLAB
ระบบสี HSV (Hue, Saturation, Value) หรือ HSB (Hue, Saturation, Brightness)
เป็น ระบบ สี ที่ นิยม ใช้ กัน ใน หมู่ นักวิจัย เนื่อง จาก เป็น ระบบ สี ที่ ใกล้ เคียง กับ ความคิด ของ
มนุษย์ ได้ ดี กว่า ระบบสี RGB โดย Hue คือ สี ของ ภาพ ,
Saturation คือ ปริมาณ ความ อิ่ม ตัว ของ สี ยิ่ง มี ค่า นี้ มาก
ภาพ จะ มี สี สด ยิ่ง มี น้อย ภาพ จะ ยิ่ง มี สี น้อย ลง จน ใน ที่ สุด จะ กลาย เป็น รูป ที่ ลักษณะ
แบบ Grayscale และ Value หรือ Brightness เป็น ค่า ที่ แสดง ถึง ปริมาณ ความสว่าง ขอ งภาพ
หาก มี ค่ามาก ภาพ จะ ยิ่ง มี ความ สว่าง มาก ใน การ ตัด พื้นหลัง ออก จากภาพ ใช้
วิธี การ แปลง ค่า สี จาก RGB เป็น HSV และ ทำการ หา ช่วง ของ
สี ของ พื้นหลัง ที่ ซึ่ง HSV สามารถ แปลง จาก RGB ได้ดังนี้
เมื่อ max = sup (R, sup (G,B )) คือค่าสูงสุดของหนึ่งจุดสี RGB และ min = inf (R, inf (G,B )) คือค่าต่ำสุดของหนึ่งจุดสี RGB ตามลำดับ
ตรวจจับวัตถุใช้ HSV ด้วย MATLAB
ขั้นตอนการเขียนโค้ดกับ Matlab
clc,
close all,
clear all,
img = imread(‘D:egg.jpg’);
figure, imshow(img)
%%
grayim = rgb2gray(img);
imhsv = rgb2hsv(img);
figure, imshow(imhsv), impixelinfo
h = imhsv(:,:,1);
s = imhsv(:,:,2);
v = imhsv(:,:,3);
[r c] = size(h);
outhsv = zeros(r,c);
for i = 1:r
for j = 1:c
if h(i,j) >= 0.07 && h(i,j) <= 0.20 && s(i,j) >= 0.10 && s(i,j) <= 0.45 && v(i,j) >= 0.70 && v(i,j) <= 0.90
outhsv(i,j) = 255;
else
outhsv(i,j) = 0;
end
end
end
figure, imshow(outhsv), impixelinfo
ในการตัดส่วนของสีที่เราต้องการให้ใช้คำสั่ง if else ในการตัดสินใจโดยกำหนดช่วงให้ทั้งสามส่วนประกอบของสี ด้วยโค๊ด if h(i,j) >= 0.07 && h(i,j) <= 0.20 && s(i,j) >= 0.10 && s(i,j) <= 0.45 && v(i,j) >= 0.70 && v(i,j) <= 0.90
หมาย เหตุท้าย : รับสอนPython
หาก คุณชอบ บทความ นี้ อย่าลืม คลิก❤ ด้าน ล่าง เพื่อ แนะนำ และ ถ้าคุณมีคำถามใด ๆ แสดงความคิดเห็นและฉันจะพยายามอย่างดีที่สุดที่จะตอบ คุณสามารถติดตามฉันบน facebook page (https://www.facebook.com/nextsoftwarehousethailand/) และสามารถส่งอีเมลถึงฉัน