【鱼苗计数】基于matlab的鱼苗计数识别【源码57期】

一、简介

基于matlab的鱼苗计数识别,鱼苗计数是水产养殖和水生生态研究中的关键任务,它有助于评估鱼苗的生长状况、预测未来的产量以及研究鱼类的生态行为。传统的鱼苗计数方法通常是手工进行,这种方法耗时、易出错,而且不适合大规模计数。随着计算机视觉和图像处理技术的发展,利用Matlab等数学软件进行鱼苗计数已经成为一种高效、准确的方法。

二、部分源码

function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
tic

global I

axes(handles.axes1)
imshow(I);%原图

Ig = rgb2gray(I);
axes(handles.axes2)
imshow(Ig);

bw_rgb = im2bw(rgb2gray(I),0.21);%rgb图像灰度转换,二值化
axes(handles.axes3)
imshow(bw_rgb);%灰度图

 pr = I(:,:,1);
     pg = I(:,:,2);
     pb = I(:,:,3);
     Y = 0.299*pr + 0.587*pg + 0.114*pb;
     U = -0.147*pr - 0.289 *pg+ 0.436*pb;%蓝色偏移量
     V = 0.615*pr - 0.515*pg- 0.100*pb;  %红色偏移量
     YUV= cat(3,Y,U,V);          %%  cat函数就是把三个空间组合在一起,合并得到YUV彩色空间图像
     axes(handles.axes4)
     imshow(YUV); 
   
  pr = I(:,:,1);
     pg = I(:,:,2);
     pb = I(:,:,3);
     V = 0.615*pr - 0.515*pg- 0.100*pb;  %红色偏移量    
bw_yuv=im2bw(YUV(:,:,3),0.1);%提取yuv中的v分量,进行二值化
axes(handles.axes5)
  imshow(bw_yuv);
  
  BW = edge(bw_yuv,'canny');  
  axes(handles.axes6)
imshow(BW);%显示yuv+canny的图像

     SE=strel('diamond',9);
A1=imdilate(BW,SE);
  axes(handles.axes7)
imshow(A1);

[L,m]=bwlabel(A1);%初步取得个数
status=regionprops (L,'BoundingBox');
centroid = regionprops(L,'Centroid' );
imshow(A1);hold on;

三、运行结果

四、matlab版本

MATLAB R2019a

五、学习与交流

文中不足之处请大家多多指教,学习与交流可以联系企鹅:3752243968
文中部分源码仅供参考,若需要全部代码可以私

  • 41
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值