欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 通过角点进行水果的果梗检测一种新方法

通过角点进行水果的果梗检测一种新方法

2025/4/29 6:30:48 来源:https://blog.csdn.net/xrgs_shz/article/details/140557242  浏览:    关键词:通过角点进行水果的果梗检测一种新方法

一、前言

     在前面的《数字图像处理与机器视觉》案例一(库尔勒香梨果梗提取和测量)中主要使用数学形态学的方法进行果梗提取,下面给出一种提取果梗的新思路。

     众所周知,一般果梗和果实在边缘处角度有较大突变,可以通过合适方法对原始图像进行角点提取,然后再进行果梗的提取和测量。下面直接给出代码和原始图像,大家可以去完善。注:原始图像是给了一个比较理想的水果图像的模拟,大家可以在此算法上进行修改、测试和完善。

二、源程序和参考的资料

clear all;
close all;
clc;
imtool close all;
I=imread('.\Test2.png');
imshow(I);
Igray=rgb2gray(I);
figure,imshow(Igray);
 corners = detectMinEigenFeatures(Igray);
  imshow(I);
  hold on;
  plot(corners.selectStrongest(10));%直接对灰度图像进行角点检测,检测效果不理想
  I_R=I(:,:,1);   %提取R通道分量
  figure,imhist(I_R);%显示R分量的灰度直方图
I_bw=im2bw(I_R,graythresh(I_R));
figure,imshow(I_bw),title('二值图像');
obj_edge=edge(I_bw,'canny');%利用Canny算子进行边缘提取
figure,imshow(obj_edge);
obj_edge2=bwmorph(obj_edge,'thin',Inf);  %使用bwmorph进行细化:
figure,imshow(obj_edge2);   
cornersModified = detectMinEigenFeatures(I_bw);%利用最小特征值算法(Minimum eigenvalue algorithm)检测角点  figure,imshow(I_bw);
  hold on;
  plot(cornersModified.selectStrongest(4));%显示检测到的角点
  cornersModified_harris = detectHarrisFeatures(I_bw);%使用Harris–Stephens算法检测角点
  figure,imshow(I_bw);
  hold on;
  plot(cornersModified_harris.selectStrongest(4));
  M=cornersModified_harris.selectStrongest(4);%找到四个角点坐标
  Cor_Loc=round(M.Location);
  disp('使用Harris–Stephens算法检测角点坐标是;');
  Cor_Loc
 %%参考资料
%https://blog.csdn.net/Meteoraki/article/details/104491537
%https://blog.csdn.net/u010278305/article/details/42618143
%https://blog.csdn.net/qq_36614557/article/details/115315449  Matlab:图像轮廓的曲率计算
%https://www.zhihu.com/question/584665321/answer/2906293834  知道四个点坐标,围成一个四边形区域。这个python代码怎么写?

三、主要运行结果

四、测试图像

      如果大家觉得本文对大家编程有帮助,请点赞、收藏和关注,谢谢!如有好的建议欢迎一起讨论交流。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词