初学数字图像处理,做一个练习,识别图中的图形形状,颜色,位置,面积,周长

基本思路:首先先对图像进行裁剪,增强等处理,使图片成为简单的二值图。

接着提取图像边缘

对图像处理后就可以进行寻找质心并标记、利用HOUGH变换检测直线、利用圆的周长和面积的关系判断是否为圆形,求图形的周长、面积、RGB等等操作

下面附全部代码,欢迎大家一起学习讨论~

f=imread('C:\Users\QHJ\Desktop\demo.png');
f=f(:,:,3);
f=histeq(f,256);       %增强对比度
f=im2bw(f,0.386);
rowhigh=102+276-1;     %提取有用部分
colhigh=193+277-1;
f=f(102:rowhigh,193:colhigh);
se=strel('square',14); %开闭运算
fo=imopen(f,se);
f2=imclose(fo,se);
f2=~f2;
imshow(f2);g=edge(f2,'sobel',0.47);
[B,L] = bwboundaries(f2,'noholes');
hold on
for k = 1:length(B)    % 标记边界boundary = B{k};plot(boundary(:,2), boundary(:,1), 'r', 'LineWidth', 2)
endhold on
[L1,n]=bwlabel(g);     %标定质心
ff=imread('C:\Users\QHJ\Desktop\demo.png');
for k=1:n[r,c]=find(L1==k);rbar=mean(r);cbar=mean(c);plot(cbar,rbar,'Marker','*','MarkerEdgeColor','blue');fprintf('行坐标为%9.2f    , ',cbar)fprintf('列坐标为%9.2f\n',rbar);
rgb=ff(floor(cbar)+193,floor(rbar)+102,:)          %读取RGB值endaxis on,axis normal;
[H,theta,rho]=hough(g);%判断直线
peak=houghpeaks(H,11);
lines=houghlines(g,theta,rho,peak,'FillGap',10,'MinLength',31);%
hold on
for k=1:length(lines)xy=[lines(k).point1;lines(k).point2];plot(xy(:,1),xy(:,2),'LineWidth',2.5,'Color','blue');
endl=regionprops(L,'Perimeter','Area');  %求周长,面积
l.Perimeter
l.Areastats = regionprops(L,'Area','Centroid','Perimeter');
threshold = 0.95;
for k = 1:length(B)boundary = B{k};area = stats(k).Area;                %perimeter=stats(k).Perimeter;delta_sq = diff(boundary).^2;    perimeter = sum(sqrt(sum(delta_sq,2)));                 %利用4pi*面积/周长^2=1判断圆metric = 4*pi*area/perimeter^2;metric_string = sprintf('%2.2f',metric) ;text(boundary(1,2)-35,boundary(1,1)+13,metric_string,'Color','g',...'FontSize',14,'FontWeight','bold');if metric > thresholdcentroid = stats(k).Centroid;text(centroid(1)-10,centroid(2)-10,'圆','Color','b','FontSize',10,'FontWeight','bold');endend

运行结果图,判断椭圆还没做出来。。。。。

图像入门:MATLAB图像识别相关推荐

  1. 半小时入门MATLAB编程入门基础知识:

    https://learnxinyminutes.com/docs/zh-cn/matlab-cn/ 半小时入门MATLAB编程入门基础知识: % 以百分号作为注释符 %{ 多行注释 可以 这样 表示 ...

  2. matlab增强图像饱和度,matlab增强图像饱和度

    关键词 遥感 MATLAB 彩色增强 直方图 色调 饱和度 II 图像色彩增强技术毕业论文 Abstract Satellite remote sensing technology has a wid ...

  3. 快速入门 Matlab 与线性代数

    Matlab 是一款专门用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括了 Matlab 和 Simulink 两大部分. 本场 Chat,我将带大家快速入门 M ...

  4. OpenCV-Java版学习(2.图像入门)

    前言 上一篇博客我们讲了如何在IDEA中使用OpenCV来进行一些简单的图像操作,这节我们来学习图像的一些基本的入门级操作. 图像入门 一.在Java中使用OpenCV注意事项 1.解决awt报错问题 ...

  5. OpenCV图像入门

    OpenCV图像入门 OpenCV图像入门 目标 源代码 解释 OpenCV图像入门 目标 在本教程中,您将学习如何: 从文件读取图像(使用cv :: imread) 在OpenCV窗口中显示图像(使 ...

  6. 图像锐化处理算法matlab,图像锐化matlab算法

    <图像锐化matlab算法>由会员分享,可在线阅读,更多相关<图像锐化matlab算法(2页珍藏版)>请在读根文库上搜索. 1.%常用图像锐化算法clcclearclose a ...

  7. matlab图像水印技术研究,动态图像数字水印matlab的实现开题报告.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 动态图像数字水印matlab的实现开题报告.doc ...

  8. matlab提取图像特征程序,图像特征提取matlab程序

    <图像特征提取matlab程序>由会员分享,可在线阅读,更多相关<图像特征提取matlab程序(2页珍藏版)>请在人人文库网上搜索. 1.直接帧间差分,计算阈值并进行二值化处理 ...

  9. matlab最小二乘法拟合 做图像,用MatLab画图(最小二乘法做曲线拟合)

    帮朋友利用实验数据画图时,发现MatLab的确是画图的好工具,用它画的图比Excel光滑.精确.利用一组数据要计算出这组数据对应的函数表达式从而得到相应图像,MatLab的程序如下: x=[1 5 1 ...

  10. OpenCV 2.图像入门:读取、显示、保存

    OpenCV 中文官方文档:http://woshicver.com/ 图像入门:读取.显示.保存 cv.imread(),cv.imshow(),cv.imwrite() cv.imread()函数 ...

最新文章

  1. 2021-02-06 Python通过matplotlib包和gif包生成gif动画
  2. 操作系统【信号量集机制、“读者-写者”问题】
  3. 当内容超出最大的长度的时候,使用CSS使文本显示省略号
  4. oracle中minus
  5. PreparedStatement批量处理的一个Framework(原创)
  6. eclipse编码页面中文乱码在哪更改编码?
  7. 构建Spring Boot RESTful服务+ Spring Boot执行器
  8. CentOS 6.8 安装FTP及添加用户
  9. Chapter 12 外观模式
  10. opboot怎么刷入固件_没有固件可刷的路由器,那就开个 SSH 折腾一下
  11. Learning-Python【1】:交互式环境与变量的使用
  12. 在一个成熟行业里怎么生存下去?
  13. 单片机制作工具大汇总!!
  14. python音频分析(一)绘制wav的时域频域图
  15. 学生HTML个人网页作业作品——湘菜美食网页设计作品(12页) 美食网站设计与实现
  16. golang 开源项目
  17. 全文干货:蓝牙耳机哪个品牌最好?平价好用的蓝牙耳机推荐
  18. 认真推荐几个高质量的原创公众号
  19. oracle查看表sql语句,oracle查看创造表的sql语句
  20. K8S有状态静态Pod经典示例

热门文章

  1. 网络七层模型及各层协议
  2. java连接gp数据库_MAVEN项目使用JDBC连接GP数据库(greenplum)
  3. 2021-02-14金蝶KIS旗舰版从采购订单下推外购入库单使用说明,金蝶盘点机PDA仓库条码管理
  4. 手绘小人多彩论文答辩PPT模板
  5. 2021年上半年软件设计师上午真题及答案解析
  6. markdown语法简单而全面,带有源码和图片(10mins内看完)
  7. linux打印信息命令行,从 Linux 命令行进行打印
  8. u盘 计算机管理 没有就绪,U盘插上电脑显示驱动器未准备就绪。怎么办?
  9. cesium——鼠标拾取坐标并转换为经纬高
  10. lvds接口屏线安装图解_lvds液晶屏幕接口详解