matlab中对火焰图像进行动态特征提取:火焰在燃烧的过程中,它的面积和质心在不断的变化,通过质心的变化来判断火势的大小,并将图片显示
时间: 2025-03-03 16:41:29 浏览: 72
### MATLAB 实现火焰图像动态特征提取
#### 加载和预处理图像
为了实现火焰图像的动态特征提取,包括计算火焰面积和质心变化来评估火势大小,并显示处理后的图像,可以按照以下方式编写代码:
```matlab
function flameAnalysis()
clc;
clear;
% 设置文件夹路径-处理特定文件夹下的所有图片
folderPath = 'D:\Project\Pictures\';
img_path_list = dir(fullfile(folderPath, '*.bmp')); % 获取该文件夹中所有 bmp 格式的图像
lengthFiles = length(img_path_list);
figure; % 创建一个新的图形窗口用于展示结果
for i = 1:lengthFiles
imagePath = fullfile(img_path_list(i).folder, img_path_list(i).name);
originalImage = imread(imagePath); % 读取原始图像
grayImage = rgb2gray(originalImage); % 将彩色图转换成灰度图
binaryImage = imbinarize(grayImage, 'adaptive', 'Sensitivity', 0.75); % 自适应二值化阈值分割
filledImage = imfill(binaryImage, 'holes'); % 填充孔洞
stats = regionprops(filledImage, 'Area', 'Centroid');
areas{i} = [stats.Area]; % 存储各个连通区域的面积
centroids{i} = cat(1, stats.Centroid{:}); % 存储各连通域中心坐标
subplot(ceil(sqrt(lengthFiles)), ceil(sqrt(lengthFiles)), i);
imshow(label2rgb(imdilate(filledImage,strel('disk',3)))); hold on;
plot(centroids{i}(1), centroids{i}(2), '*r', 'MarkerSize', 8, 'LineWidth', 2); % 绘制质心位置
title(['Frame ', num2str(i)]);
axis off;
end
disp('Flame area and centroid changes:');
for j = 1:length(areas)-1
fprintf('From frame %d to %d\n', j, j+1);
diffAreas(j) = sum(areas{j}) - sum(areas{j+1});
if ~isempty(centroids{j}) && ~isempty(centroids{j+1})
distBetweenCenters(j) = pdist2([centroids{j}], [centroids{j+1}], 'euclidean');
else
distBetweenCentors(j) = NaN;
end
fprintf('\tChange in Area: %.2f pixels\n\tDistance between Centroids: %.2f units\n', ...
abs(diffAreas(j)), mean(distBetweenCenters(j)));
end
end
```
这段脚本会遍历指定目录中的每一张 `.bmp` 图像,执行一系列操作以检测并分析其中可能存在的火焰特性。对于每一帧图像,先将其转化为灰度形式再通过自适应方法进行二值化处理;接着填充任何内部空白部分以便更精确地描绘目标对象轮廓。最后应用 `regionprops()` 函数测量这些闭合边界内的总面积以及它们各自的重心位置。
上述过程不仅能够帮助识别出哪些像素属于潜在燃烧区(即高亮度或颜色异常),而且还能跟踪随时间推移而发生的形态学上的改变——比如扩张收缩趋势或是移动方向等重要指标[^1]。
#### 计算与可视化
在循环内,除了保存每个时刻的关键数据外,还创建了一个子图用来直观呈现当前正在考察的画面及其标注过的热点部位。这有助于研究人员快速理解实验过程中发生了什么现象而不必逐一查看源素材本身。此外,在最终打印出来的统计报告里包含了相邻两帧间所记录到的变化量对比情况,这对于量化评价火灾发展态势具有重要意义。
阅读全文
相关推荐















