Edge Detection ກວດຈັບຂອບຂອງຕົວໜັງສືໃນຮູບພາບດ້ວຍ MATLAB

ໝາຍເຫດ: ນີ້ເປັນໜຶ່ງໃນ assignment ທີ່ຂ້ອຍໄດ້ໃນລະຫວ່າງການຮຽນ ແລະຟັງຊັນທີ່ຂ້ອຍຂຽນໃນນີ້ ແມ່ນໄດ້ຈາກການຊ່ວຍເຫຼືອຈາກ community ຂອງ Matlab ຂ້ອຍບໍ່ຖືວ່ານີ້ເປັນຜົນງານຂອງຂ້ອຍພຽງຄົນດຽວ ຂ້ອຍນຳມາແບ່ງປັນຈຸດປະສົງເພື່ອການສຶກສາ


ສຳລັບໂພສນີ້ ເປັນການຂຽນຟັງຊັນເພື່ອກວດຈັບຂອບຂອງຕົວໜັງສືໃນຮູບພາບ ດັ່ງຮູບລຸ່ມນີ້

ຮູບທີ່ຖືກປະມວນຜົນແລ້ວ

ຮູບ original



    ເລີ່ມດ້ວຍການຂຽນຟັງຊັນ
function output = edgy(input)
input = uint8(input); % ປ່ຽນ input ເປັນ uint8
input = double(input); % ປ່ຽນ input ເປັນ double
image = zeros(size(input)); % ປ່ຽນຂະໜາດຂອງຮູບພາບໃຫ້ເປັນ 0
px = [-1 0 1; -2 0 2; -1 0 1];
py = [-1 -2 -1; 0 0 0; 1 2 1];
for i = 1:size(input, 1) - 2
for j = 1:size(input, 2) - 2
Gx = sum(sum(px.*input(i:i+2, j:j+2)));
Gy = sum(sum(py.*input(i:i+2, j:j+2)));
image(i+1, j+1) = sqrt(Gx.^2 + Gy.^2);
end
end
image = image(2:(end-1), 2:(end-1));
output = uint8(image);
end

ສຳລັບການເອີ້ນໃຊ້ຟັງຊັນແມ່ນເຮັດຢູ່ໃນ command window

c = imread("CocaCola.png");
figure
imshow(c);
edge = edgy(c);
figure
imshow(edge);





ລອງຮູບອື່ນ





Output




ແລະນີ້ຄືຟັງຊັນສຳລັບການກວດຈັບຂອບໃນຮູບພາບທີ່ຂຽນໃນ MATLAB 

Thankyou :)❤


Comments