clc; clear; I = imread('E:\数字图像实验\课设\shiyan2.jpg'); G = rgb2gray(I); % 提取白车 G1 = G > 210; se1 = strel('square', 15); G4 = imopen(G1, se1); white = length(regionprops(G4, 'Area'))/2; % 提取黑车 G2 = G <50; se1 = strel('square', 20); G5 = imopen(G2, se1); black = length(regionprops(G5, 'Area')); % 提取红车 G3 = G>70 & G<110; se1 = strel('square', 30); G6 = imopen(G3, se1); red = length(regionprops(G6, 'Area')) ; % 合并三种颜色车的结果 XX = bwlabel(G4, 8); XX1 = bwlabel(G5, 8); XX2 = bwlabel(G6, 8); % 显示结果 figure(1); subplot(2, 2, 1); imshow(I); title('原图'); subplot(2, 2, 2); imshow(XX); title('白车目标图'); subplot(2, 2, 3); imshow(XX1); title('黑车目标图'); subplot(2, 2, 4); imshow(XX2); title('红车目标图'); % 计算车的数量 total_cars = white + black + red;
时间: 2023-11-27 20:03:40 浏览: 73
数字图像处理实验报告.docx
这段代码是用MATLAB对一张图片进行分析,提取出白车、黑车和红车的数量,并将结果显示出来。其中,首先将彩色图像转换为灰度图像,然后利用阈值将图像二值化,提取出白车、黑车和红车的像素点。接着,利用形态学操作和区域属性函数,对每种车的像素进行操作并计算数量。最后,将三种颜色的车的目标图像合并在一起,并显示结果。总车辆数就是三种颜色车的数量之和。
阅读全文