我是靠谱客的博主 明亮刺猬,最近开发中收集的这篇文章主要介绍使用MATLAB求图像的形心、外接矩形顶点坐标并标记1. 求图像形心使用自带函数regionprops标记2. 求图像外接矩形顶点坐标并标记,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
使用MATLAB求图像的形心、外接矩形顶点坐标并标记
- 1. 求图像形心使用自带函数regionprops标记
- 2. 求图像外接矩形顶点坐标并标记
欢迎学习交流!
邮箱: z…@1…6.com
网站: https://zephyrhours.github.io/
1. 求图像形心使用自带函数regionprops标记
【例1】
%% Compiled by Zephyr Hou
clc;clear;close all
disp('Compiled by Zephyr Hou')
I = imread('coins.png'); % coins.png为系统内自带图像
Ibw = im2bw(I); %使用阈值变换法把灰度图像转换成二值图像
Ibw = imfill(Ibw,'holes'); %该函数用于填充图像区域和‘空域’
Ilabel = bwlabel(Ibw); %连通区域标记函数
stat = regionprops(Ilabel,'centroid');%用来度量图像区域属性的函数.常用来统计被
%标记的区域的面积分布,显示区域总数
imshow(I); hold on;
for x = 1: numel(stat)
plot(stat(x).Centroid(1),stat(x).Centroid(2),'b*');
end
运行效果如下:
2. 求图像外接矩形顶点坐标并标记
【例2】
%% Compiled by Zephyr Hou
% 计算形心坐标,用矩形标记
clc;clear;close all
disp('Compiled by Zephyr Hou')
I=imread('coins.png');
%%利用内置函数进行圆形检测
figure
imshow(I,[]);
title('检测结果');
hold on;
[centers, radii, metric] = imfindcircles(I,[10 30]);
% viscircles(centers, radii,'EdgeColor','b'); %根据中心,半径画出圆形。
[rows,~]=size(centers);
Marks={}; % 外接矩形的四个顶点坐标构成的胞元
for i=1:rows
Mark1{i,1}=centers(i,1)-radii(i);
Mark1{i,2}=centers(i,2)-radii(i);
Mark2{i,1}=centers(i,1)+radii(i);
Mark2{i,2}=centers(i,2)-radii(i);
Mark3{i,1}=centers(i,1)+radii(i);
Mark3{i,2}=centers(i,2)+radii(i);
Mark4{i,1}=centers(i,1)-radii(i);
Mark4{i,2}=centers(i,2)+radii(i);
Marks={Mark1,Mark2,Mark3,Mark4};
end
% MM为标记的目标的矩形四顶点坐标(x1,y1,x2,y2,x3,y3,x4,y4)左上角开始顺时针
MM=zeros(rows,4);
for i=1:rows
MM1=[Marks{1}{i,:},Marks{2}{i,:},Marks{3}{i,:},Marks{4}{i,:}];
for j=1:8
MM(i,j)=MM1(1,j);
end
end
% 将检测到的目标在图像中用矩形圈出
for i=1:rows
plot([MM(i,1:2:8),MM(i,1)],[MM(i,2:2:8),MM(i,2)],'r-')
end
运行效果如下:
最后
以上就是明亮刺猬为你收集整理的使用MATLAB求图像的形心、外接矩形顶点坐标并标记1. 求图像形心使用自带函数regionprops标记2. 求图像外接矩形顶点坐标并标记的全部内容,希望文章能够帮你解决使用MATLAB求图像的形心、外接矩形顶点坐标并标记1. 求图像形心使用自带函数regionprops标记2. 求图像外接矩形顶点坐标并标记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复