完成实验四

This commit is contained in:
张梦南 2025-05-28 19:33:10 +08:00
parent d8f90dbc3c
commit fbbdd89bf8

79
EXP_four.m Normal file
View File

@ -0,0 +1,79 @@
%
image = imread('EXP_3_4/test.jpg');
image_airport = imread('EXP_3_4/airport.jpg');
image_circuit = imread('EXP_3_4/circuit.png');
image_circle = imread('EXP_3_4/circle.jpg');
%
image_gray = rgb2gray(image);
image_airport_gray = rgb2gray(image_airport);
image_circle_gray = rgb2gray(image_circle);
% log
image_log = edge(image_gray, 'log');
% canny
image_canny = edge(image_gray, 'canny');
image_circuit_canny = edge(image_circuit, 'canny');
%
image_corners = corner(image_airport_gray, 'Harris');
% Hough
[Hough, theta, rho] = hough(image_circuit_canny);
% Hough
P = houghpeaks(Hough, 10, 'Threshold', ceil(0.3 * max(Hough(:)))); % 10
% 线
lines = houghlines(image_circuit_canny, theta, rho, P, 'FillGap', 20, 'MinLength', 30);
%
[centers, radii] = imfindcircles(image_circle_gray, [50 100], 'ObjectPolarity', 'bright', 'Sensitivity', 0.92);
%
figure;
subplot(1,3,1);
imshow(image);
title('Original Image'); %
subplot(1,3,2);
imshow(image_log);
title('Log Edge Detection'); % Log
subplot(1,3,3);
imshow(image_canny);
title('Canny Edge Detection'); % Canny
figure;
subplot(1,2,1);
imshow(image_airport);
title('Original Image'); %
subplot(1,2,2);
imshow(image_airport);
title('Corner Detection'); %
hold on;
plot(image_corners(:,1), image_corners(:,2), 'r*');
% 线
figure;
imshow(image_circuit);
hold on;
title('Line Edge Detection'); %线
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2]; %
plot(xy(:,1), xy(:,2), 'LineWidth', 2, 'Color', 'green');
%
plot(xy(1,1), xy(1,2), 'x', 'Color', 'yellow');
plot(xy(2,1), xy(2,2), 'x', 'Color', 'red');
end
figure;
subplot(1,2,1);
imshow(image_circle);
title('Original Image'); %
subplot(1,2,2);
imshow(image_circle);
title('Coin Edge Detection'); %
hold on;
viscircles(centers, radii, 'EdgeColor', 'r');