Matlab形态学图像处理:二值图像分割 标记连通区域和重心位置 删除连通区域
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Matlab形态学图像处理:二值图像分割 标记连通区域和重心位置 删除连通区域
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                Matlab形態學圖像處理:二值圖像分割 標記連通區域和重心位置 刪除連通區域
【尊重原創,轉載請注明出處】http://blog.csdn.net/guyuealian/article/details/71440949 ? ? Matlab中可以使用graythresh(Img)函數設置二值化的閾值,再用im2bw轉化為二值圖像。在Matlab中,可以使用bwlabel()和bwlabeln()函數來標記二值圖像的連通區域。需要注意的是:所謂的連通區域標記是指對二值圖像中白色像色而言,即值為1的像素進行標記,而黑色像素看作是背景顏色。當然,Matlab中還有個regionprops()函數可以用于統計圖像區域的屬性,如面積大小,重心位置。關于bwlabel()、bwlabeln()和regionprops()的用法,請查看相關博客吧 ? ? 本博客Matlab代碼將實現的功能:將圖像轉為二值圖像,分割出感興趣的區域,并用“紅色矩形線框”標記連通區域的面積,用“藍色點”標記連通區域的重心位置,為了減少噪聲的干擾,代碼中將連通區域面積(像素個數)不足100的區域認為是噪聲點,并將其刪除(即置為背景黑色)。本人用PS制作了一個GIF動畫圖,以便大家觀看效果圖: clc;clear all;close all %% 清空變量,讀取圖像,并顯示其屬性 clear;close all src = imread('rice.jpg'); %顯示原始圖像 figure, subplot(2,2,1),imshow(src),title('原圖')%用ostu方法獲取二值化閾值,進行二值化并進行顯示 level=graythresh(src); bw=im2bw(src,level); subplot(2,2,2),imshow(bw),title('二值圖像')%運用開操作消去噪點 se = strel('disk',2); openbw=imopen(bw,se);%對白色點而言 subplot(2,2,3),imshow(openbw),title('開運算后的效果圖')%獲取連通區域,并進行顯示 % L = bwlabel(openbw,8); [L,num] = bwlabel(openbw,8); RGB = label2rgb(L); subplot(2,2,4),imshow(RGB),title('用rgb顏色標記不同區域')%獲取區域的'basic'屬性, 'Area', 'Centroid', and 'BoundingBox' % stats = regionprops(openbw, 'basic');stats = regionprops(openbw, 'BoundingBox' ,'Area','Centroid' ,'PixelList' ); %統計白色的連通區域 centroids = cat(1, stats.Centroid);%% noiseArea=100; figure,imshow(openbw),title('2') hold on for i=1:size(stats)imshow(openbw)rectangle('Position',[stats(i).BoundingBox],'LineWidth',2,'LineStyle','--','EdgeColor','r'),plot(centroids(i,1), centroids(i,2), 'b*'); %每個連通區域的重心位置area = stats(i).Area; %連通區域的面積if area<noiseArea %若當前連通區域面積小于噪聲點的面積,則該區域設置為0pointList = stats(i).PixelList; %每個連通區域的像素位置rIndex=pointList(:,2);cIndex=pointList(:,1);pointList = stats(i).PixelList; %連通區域的像素坐標openbw(rIndex,cIndex)=0; %連通區域的面積不足100,置為背景顏色endpause(1);saveas(gcf,sprintf('img/%d',i),'jpg') %保存圖片 end hold off總結
以上是生活随笔為你收集整理的Matlab形态学图像处理:二值图像分割 标记连通区域和重心位置 删除连通区域的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 基于空间相关的图像模板匹配及MATLAB
- 下一篇: MFC文件打开格式,MFC默认打开文档后
