matlab图像处理之检测成熟番茄个数检测

任务目标:检测图像中番茄的总个数,成熟,不成熟的个数

评分原则:番茄总个数,成熟,不成熟的个数的精度越高,课程评分越高

1.jpg

matlab代码实现

  1. 读取图片

close all;

clear all;

clc;

image_1=imread('1.jpg');%%图片需要在matlab路径下

imshow(image_1) %% 显示图片

  1. 将图片转为灰度图并调整灰度最佳范围

image = rgb2gray(image_1);%把图片转成灰度图

M=stretchlim(image); %获取最佳区间

image=imadjust(image,M,[]); %调整灰度范围

imshow(image);title('原始图像');

  1. 对灰度图进行高斯滤波处理去除噪声

image = double(image)/256;

[m,n] = size(image);

w = fspecial('gaussian');%进行高斯滤波把图片处理

Ft = imfilter(image,w,'replicate');

imshow(int8(256*Ft));

title('高斯滤波后的图像')

  1. 将高斯滤波后的灰度图转换为二值图

level=graythresh(Ft);

BW=im2bw(Ft,level);%转换二值图

imshow(BW)

  1. 对二值图进行开操作,消除噪声

se=strel('disk',85);%对二值图进行开操作,消除噪声

Ib=imopen(BW,se);

imshow(Ib)

  1. 对图片进行边缘检测和小孔填充

BW1=edge(Ib,'sobel',0.25);%边缘检测

imshow(BW1);

se90=strel('line',7,90);

se0=strel('line',7,0);

BW2=imdilate(BW1,[se90,se0]);

figure,imshow(BW2);

BW3=imfill(BW2,'holes');%将区域填充

figure,imshow(BW3);

BW4=imclearborder(BW3,4);%去除小孔

figure,imshow(BW4)

BW4

7.检测番茄的总数目

[labeled,numfanqie]=bwlabel(BW4,4) %检测番茄的总数目

B = bwboundaries(BW4,'noholes');%%提取区域轮廓

运行结果:

numfanqie =

2

这是一次课程的作业,后期的成熟,番茄的检测还在做的当中,做完了及时发布文章

如果喜欢的话,可以点个赞,欢迎大家指正批评,互相交流,互相进步

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值