骰子点数识别-图像分割精要.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
骰子点数识别-图像分割精要

骰子点数识别-图像分割 前言 前段时间借用神经网络和卷积神经网络实现了骰子点数的识别,但是一个很严重的问题一直困扰我,那就是当两个骰子叠在一起的时候,将两个骰子分开并不是一件简单的事情。 下图是我在识别过程中产生的不能识别的,叠加在一起的图片素材。 面对这些形态各异的图片,有的时候是两个骰子一个角连在一起,有的是一条边,有的是三个骰子叠在一起。所以,很难找到一个满意的办法解决这个问题。 第一思路就是从原始的RGB图像着手,通过调整二值化阈值,希望能够将骰子对象分割开来,但是遗憾的是我试了好几种方法,都是不行的,原因在于原图像在交接的地方本来就很模糊,颜色变化很小,所以使用二值化阈值调整很难得到完美的解决方案。 期间我尝试了不同的方法 分水岭 [java] view plain copy 在CODE上查看代码片派生到我的代码片 close all clc figure(1) subplot(231) RGB_img=imread(161220S010129.jpg); imgsize =size(RGB_img); RGB_img = imcrop(RGB_img,[imgsize(1,2)*0.418 imgsize(1,1)*0.655 215 134]);%大部分图像布局固定 imshow(RGB_img) %% subplot(232) %imhist(A(:,:,1)); bw=im2bw(rgb2gray(RGB_img)); bw=medfilt2(bw); planes=bwareaopen(bw,100); imshow(planes) %% subplot(233) D=bwdist(imcomplement(planes)); D=mat2gray(D); imshow(D) figure subimage(D) hold on [C,h]=imcontour(D,0.2:0.2:0.8); set(h,ShowText,on,TextStep,get(h,LevelStep)*2) text_handle = clabel(C,h,color,g); figure(1) %% subplot(234) M=imimposemin(imcomplement(D),D.8); imshow(M); %% subplot(236) L=watershed(M); r=L planes; imshow(r) %%%%%%%%%%%% stats=regionprops(r,BoundingBox,Centroid); hold on c=cat(1,stats.Centroid); plot(c(:,1),c(:,2),r*) bb={stats.BoundingBox}; cellfun(@(x) rectangle(Position,x,EdgeColor,y),bb) %% subplot(235) L(r)=5; imshow(L,[]) 抽取局部再二值化寻找连通区域 [java] view plain copy 在CODE上查看代码片派生到我的代码片 close all; RGB_img=imread(161221S010029.jpg); imgsize =size(RGB_img); RGB_img = imcrop(RGB_img,[imgsize(1,2)*0.418 imgsize(1,1)*0.655 215 134]);%大部分图像布局固定 GRY_img=rgb2gray(RGB_img); level = graythresh(GRY_img); BW_img=im2bw(GRY_img,0.7); BW_img =imclearborder(BW_img,8); [img1,map] = rgb2ind(RGB_img,64); %# Create your quantized image rPlane = reshape(map(img1+1,1),size(img1)); %# Red color plane for image gPlane = reshape(map(img1+1,2),size(img1)); %# Green color plane for image bPlane = reshape(map(img1+1,3),size(img1)); %# Blue color plane

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档