MATLAB 视频Gamma灰度校正 对灰度图像滤波 阈值分割将图像二值化 对二值图像进行形态学处理连接目标 获得图像边框 通过边框求最小外接矩阵质心坐标总体代码实现
时间: 2023-11-27 15:49:26 浏览: 85
用于灰度图像二值化的MATLAB代码,算法采用迭代法_二值化_图像处理
以下是 MATLAB 实现 Gamma 灰度校正、灰度图像滤波、阈值分割、形态学处理、获取边框、最小外接矩形和质心坐标的代码:
```matlab
% 读取图像
img = imread('image.jpg');
% Gamma 灰度校正
gamma = 1.5;
img_gamma = imadjust(img,[],[],gamma);
% 灰度图像滤波
h = fspecial('gaussian', [5 5], 1);
img_filtered = imfilter(img_gamma, h);
% 阈值分割将图像二值化
level = graythresh(img_filtered);
img_binary = imbinarize(img_filtered, level);
% 形态学处理连接目标
se = strel('disk', 3);
img_morphed = imclose(img_binary, se);
% 获取边框
[B,~] = bwboundaries(img_morphed);
% 最小外接矩形和质心坐标
for k = 1:length(B)
boundary = B{k};
stats = regionprops(img_morphed,'Orientation','BoundingBox','Centroid');
centers = stats(k).Centroid;
rectangle('Position', stats(k).BoundingBox,'EdgeColor','g','LineWidth',2)
plot(centers(1), centers(2), 'gx', 'LineWidth', 2, 'MarkerSize', 10);
end
% 显示结果
imshow(img);
```
需要注意的是,这只是一个示例代码,实际应用中需要根据具体情况进行调整和优化。
阅读全文