用matlab检测斑马鱼重心
2015-07-01 17:36
405 查看
clc;
clear;
img1=imread('E:\matlab\zebrafish\zebrafish.jpg');
figure('name','显示原始图像');
imshow(img1);
img2 = rgb2gray(img1); %转换成灰度图像
figure('name','显示灰度图像');
imshow(img2);
%thresh = graythresh(img2); %获取转换成二值图像的阈值
img3 = im2bw(img2,0.64); %转换为二值图像,手动调整阈值,保证斑马鱼外轮廓比较准确
figure('name','显示二值图像');
imshow(img3);
img4 = bwareaopen(img3,4300); %删除二值图像img3中面积小于500的对象
figure('name','显示滤除内部噪声后的图像');
imshow(img4);
img5=1-img4;%图像反转
figure('name','显示反转后的图像');
imshow(img5);
img5 =bwareaopen(img5,53000); %去噪,阈值选取很大,其实是要去掉鱼身体外部的痕迹,只留下整个鱼身
figure('name','显示滤除外部噪声及重心标记后的图像');
imshow(img5);
hold on ; %维持图像,保证坐标能被标记在img5上
S=regionprops(img5,'Centroid'); %求出鱼身的重心坐标,坐标信息存在S.Centroid
plot(S.Centroid(1),S.Centroid(2),'+'); %用+标记重心点
result=sprintf(' (%.1f,%.1f)',S.Centroid);
text(S.Centroid(1),S.Centroid(2),result);%将坐标以文本的形式标记在img5上
hold off;
%求出鱼身体部分的像素个数
S=regionprops(img5,'Area');
a=S.Area;
%a=131686
clear;
img1=imread('E:\matlab\zebrafish\zebrafish.jpg');
figure('name','显示原始图像');
imshow(img1);
img2 = rgb2gray(img1); %转换成灰度图像
figure('name','显示灰度图像');
imshow(img2);
%thresh = graythresh(img2); %获取转换成二值图像的阈值
img3 = im2bw(img2,0.64); %转换为二值图像,手动调整阈值,保证斑马鱼外轮廓比较准确
figure('name','显示二值图像');
imshow(img3);
img4 = bwareaopen(img3,4300); %删除二值图像img3中面积小于500的对象
figure('name','显示滤除内部噪声后的图像');
imshow(img4);
img5=1-img4;%图像反转
figure('name','显示反转后的图像');
imshow(img5);
img5 =bwareaopen(img5,53000); %去噪,阈值选取很大,其实是要去掉鱼身体外部的痕迹,只留下整个鱼身
figure('name','显示滤除外部噪声及重心标记后的图像');
imshow(img5);
hold on ; %维持图像,保证坐标能被标记在img5上
S=regionprops(img5,'Centroid'); %求出鱼身的重心坐标,坐标信息存在S.Centroid
plot(S.Centroid(1),S.Centroid(2),'+'); %用+标记重心点
result=sprintf(' (%.1f,%.1f)',S.Centroid);
text(S.Centroid(1),S.Centroid(2),result);%将坐标以文本的形式标记在img5上
hold off;
%求出鱼身体部分的像素个数
S=regionprops(img5,'Area');
a=S.Area;
%a=131686
相关文章推荐
- matlab 中的 S-Function的用法(C语言)
- matlab图片扭曲
- matlab取整
- matlab 全部的随机数函数
- matlab批量删除
- 多普勒失真信号采样Matlab模拟分析
- 调教一下你的matlab,给等待加入一段waitbar
- eval 用法 matlab
- 图像配准实现(matlab篇)
- Hough变换检测直线
- Matlab与微积分计算
- matlab注意事项
- 大矩阵的分块乘法及matlab实现
- matlab条形图绘制函数用法
- 利用MATLAB截取图片某个区域
- 听听函数,看看声音--Matlab的sound()函数
- Matlab求方差,均值,均方差,协方差的函数
- Matlab定义子函数
- matlab中各种距离计算方式
- 为什么要进行傅立叶变换,究竟有何意义?如何用MATLAB实现快速傅立叶变换?