MATLAB 视频处理Gamma灰度校正 阈值分割将图像二值化 对二值图像进行形态学处理连接目标 获得图像边框 通过边框求最小外接矩阵质心坐标总体代码实现
时间: 2023-11-27 16:50:53 浏览: 163
以下是MATLAB视频处理的代码示例,包括Gamma灰度校正、阈值分割、形态学处理、连接目标、获得图像边框和通过边框求最小外接矩形质心坐标。
```matlab
% 加载视频文件
v = VideoReader('example.avi');
% 读取第一帧图像
frame = readFrame(v);
% Gamma灰度校正
gamma = 1.5;
frame = imadjust(frame,[],[],gamma);
% 阈值分割将图像二值化
threshold = 0.3;
bw = imbinarize(frame,threshold);
% 对二值图像进行形态学处理连接目标
se = strel('disk',3);
bw = imclose(bw,se);
% 获得图像边框
[B,L] = bwboundaries(bw,'noholes');
% 通过边框求最小外接矩形质心坐标
centroids = zeros(size(B,1),2);
for k = 1:length(B)
boundary = B{k};
stats = regionprops(L,'Area','Centroid');
if stats(k).Area > 10
centroid = stats(k).Centroid;
centroids(k,:) = centroid;
rectangle('Position',[centroid(1)-15,centroid(2)-15,30,30],'EdgeColor','r');
end
end
```
代码中,首先加载视频文件并读取第一帧图像,然后进行Gamma灰度校正和阈值分割将图像二值化。接着对二值图像进行形态学处理连接目标,并使用`bwboundaries`函数获得图像边框。最后,通过边框求最小外接矩形质心坐标并在图像中画出红色矩形框。
阅读全文