(1)将已知图像进行消噪处理

(2)对彩色图像进行目标和背景分析

(3)通过颜色将图像进行分割

(4)进行形态学处理,提取目标

看了一下这几个博客,重要的是要得到的就是二值化的分割出来的主体图像,剩下提取的步骤其实不算难。可以使用图像相乘,或者颜色叠加。

用 matlab 对图像进行局部提取

试了一下使用OTSU进行分割,效果不太理想。直方图也比较平均,无法提取出来。

区域生长分割,效果依旧很差。

​由于给定的图片主要分为红色的苹果和绿色的叶子部分,所以可以基于颜色进行分割。

老师给的代码是K均值聚类算法,不明觉厉。

clear,clc,close all;
Image=imread('fruit.jpg');
subplot(121);imshow(Image),title('原图像');
hsv=rgb2hsv(Image);
h=hsv(:,:,1);
h(h>330/360)=0;
[N,M]=size(h);
training=h(:);
startdata = [0;60/360;120/360;180/360;240/360;300/360];
[IDX,C]= kmeans(training,6,'Start',startdata);
idbw = (IDX == 1);
template = reshape(idbw, size(h));
subplot(122);imshow(template),title('分割后的图像');
imwrite(template,'clusterseg.jpg');

由于没有装工具箱,我使用不了kmeans函数,所以研究了一下,使用了基于RGB分量分割,对应的红色R=1,B,G参数自己调整,方法在这篇帖子。

matlab 对颜色差异明显的目标 实现图像分割

主要使用了方法2得到二值化后的图像,然后颜色叠加部分采用了这个链接中的方法,将得到的二值图像分别和原图提取出来的RGB分量相乘。在灰度处理的时候添加了填充洞和删掉小块噪点的函数,使图像更加完整

有二值化图像后提取对应彩色图

clear allpic1=imread('apple.png');
%分别提取RGB三个通道(也就是三个二维矩阵)
R=pic1(:,:,1);
G=pic1(:,:,2);
B=pic1(:,:,3);
%获取图像的矩阵
[y,x,z]=size(pic1);%使用灰度整合二值化方法
%循环每个像素
for i=1:xfor j=1:y%改变灰度值,系数可以自己调整pic2(j,i)=(1*R(j,i)-0.3*G(j,i)-0.3*B(j,i)); end
endt=graythresh(pic2);             %确定二值化阈值pic3=im2bw(pic2,t);             %二值化pic3=imfill(pic3,'holes');      %填充洞pic3=bwareaopen(pic3,10);       %删掉一些小块噪点%由于二值图元素的类型都是 logical型(逻辑型),在进行运算处理时不符合要求,所以转为 uint8
a1=im2uint8(pic3)/255;R1=R.*a1;               %各个通道的矩阵乘以二值图,中心的蝴蝶矩阵数值不变,背景变为0
G1=G.*a1;
B1=B.*a1;b1(:,:,1)=R1;           %三个通道叠加,组成一个三维的RGB图
b1(:,:,2)=G1;
b1(:,:,3)=B1;%显示结果环节
figure
subplot(1,2,1),imshow(pic1),title("原图");
subplot(1,2,2),imshow(b1),title("处理结果");

相比起来效果还是差了点,苹果底部反射叶子的部分因为有绿色所以不是很精确。

当然红色玫瑰也ok

MATLAB红苹果提取(颜色分割)相关推荐

  1. 如何用matlab分割颜色,Matlab:基于颜色的分割

    您得到不同结果的原因是您的颜色分割算法使用了 k-means clustering.我将假设您不知道这是什么,因为熟悉其工作原理的人会立即告诉您这就是您的原因每次都会得到不同的结果.事实上,每次运行此 ...

  2. 使用纯JavaCV实现颜色分割 / 轮廓提取 / 离焦 / 线性旋转变焦模糊 / 灰度化 / 标注等处理

    年底冲KPI很多项目要结项,临时被拉去开发了一些"很有意思"的项目,感觉自从离开学校以后很长时间都没有再接触过图像处理领域了,有点跟熟悉的陌生人打交道的快感.这里简单记录一下相关代 ...

  3. matlab 图片RGB颜色提取0-255版

    APP designer版本链接:MATLAB App Designer 特别篇:RGB颜色提取器 新版本链接:matlab图片RGB颜色提取第二版 function getcolor255 glob ...

  4. matlab 图片RGB颜色提取

    APP designer版本链接:MATLAB App Designer 特别篇:RGB颜色提取器 新版本链接:matlab图片RGB颜色提取第二版 写了一个程序能实现导入图片识别颜色 支持屏幕截图和 ...

  5. 六、HSV颜色空间应用实例——颜色分割提取与替换

    教程汇总:python基础入门系列 通过之前的章节(四.OpenCV颜色空间--HSV颜色模型),我们已经初步认识了HSV颜色空间的特性与优势,现在就来看两个典型的应用实例,颜色分割提取 与 颜色替换 ...

  6. MATLAB#183;提取图像中多个目标

    基于matlab工具箱提取图像中的多目标特征(代码如下): 代码前面部分为提取图像的边界信息,调用了后面的遍历函数Pixel_Search,函数实现方法见后~ %%ROI Testing close ...

  7. 基于MATLAB改进Otsu阈值分割的车道线检测

    基于MATLAB改进Otsu阈值分割的车道线检测 摘要:在判断车道偏离以防止车辆碰撞等危害时,车道标线检测需要通过图像处理来进行,检测方法是否适用于各种背景环境条件以及检测的及时性至关重要传统的Ots ...

  8. matlab人工选择阈值进行分割,基于MATLAB的图像阈值分割算法的研究

    [摘要]:图像分割是一种重要的数字图像处理技术.本文首先介绍了图像分割技术,其次总结了目前图像分割技术中所用到的阈值.边缘检测.区域提取等方法以及分水岭算法.针对各种阈值分割算法,本文在最后做了详细的 ...

  9. 【python ++ opencv + pytorch 】车牌提取、分割、识别

    话不多说,先看最后成果图(如果想要全部工程,文章最后我会把github链接放上): 可以看到最终的识别车牌号码是:苏G99999. 其实前年冬天偶然想着用c++来做一个小项目,然后就用 c++ ope ...

最新文章

  1. php播放ppt代码,PHP+JavaScript幻灯片代码
  2. 开源 SPL 优化报表应用应对没完没了
  3. python成绩管理系统界面-python实现简易版学生成绩管理系统
  4. 小马哥spring编程核心思想_Spring源码高级笔记之——Spring核心思想
  5. 你应该知道的print
  6. 掌握jQuery插件开发
  7. 在DataGrid中合并单元格行
  8. 宽容与忍耐 忍乃济——这是《尚书》这部中国令世人刮目的奇书告诉我们的真理 保身第一法:谦逊;处事第一法:安详;待人第一法:涵容(宽容);养心第一法:洒脱...
  9. C:01---数据类型与ASCII
  10. 5W1H系列 | Nacos 帮我们解决什么问题?(配置管理篇)
  11. 坑爹的 Lombok,把我害惨了!
  12. android adb 模拟来电,在Android模拟器中模拟GPS、打电话、发短信……
  13. 洛谷P2585 [ZJOI2006]三色二叉树
  14. 一小时看懂Ruby代码基本逻辑(自定义metasploit模块)
  15. 正则表达式如何匹配括号
  16. TestCenter测试管理工具功能详解一(F)
  17. Scratch3.0----函数(1)
  18. Android如何分析排查ANR
  19. Windows10下如何创建VHDX(VHD)格式的虚拟硬盘文件
  20. python画图颜色代码rgb_如何获取matplotlib颜色方案的RGB值?

热门文章

  1. html如何将图片做成六边形,css画正六边形的两种方法
  2. Linux下安装ActiveMQ CPP Library 3.9.4
  3. eclipse如何自动提示? 代码自动提示快捷键设置
  4. Typescript No definition found
  5. docker容器的detached模式下查看logs
  6. 抖音上发的测体重的软件怎么测试,抖音手机称重是什么软件做的? 手机称重的操作方法...
  7. 【转】CT辐射量如何计算?
  8. 男人的36种不成熟表现
  9. 【CSDN软件工程师能力认证学习精选】 常见的主流数据库(DBMS)
  10. 在power query中连接mysql_PowerQuery连接常用数据库函数