基於最小外接矩形的圖像目標前景背景分離

基於最小外接矩形的圖像目標前景背景分離


對圖像中多個目標進行標記

找到每一個目標的最小外接矩形

然後提取其灰度特徵


實例如下

多個不規則圖像目標

基於最小外接矩形的圖像目標前景背景分離

圖像目標

前景背景分離程序設計

<code>clear all;clc;I_gray=imread('C:\\Users\\Administrator\\Desktop\\演示文稿1.jpg');%灰度圖像I_gray = rgb2gray(I_gray);figure,imshow(I_gray); %求二值化的閾值level=graythresh(I_gray);  [height,width]=size(I_gray);%二值化圖像bw=im2bw(I_gray,level);    figure,imshow(bw);      %顯示二值化圖像%二值化取反bw = 1-bw;%標註二進制圖像中已連接的部分[L,num]=bwlabel(bw,8);     %封裝函數獲取各種參數信息stats_1 = regionprops(L,'Area','PixelList','Centroid','BoundingBox');%繪製質心座標Cen_1 = cat(1,stats_1.Centroid);figure(3),imshow(bw);hold on ;for i=1:length(stats_1)     plot(Cen_1(i,1), Cen_1(i,2), 'r+'); end%繪製最小外接矩形框Temp_1 = cat(1,stats_1.BoundingBox);for i=1:length(stats_1)     temp = Temp_1(i,:);    rectangle('position',temp,'edgecolor','r');end %標記外接矩形框起始點座標for i = 1:length(stats_1)    plot(Temp_1(i,1),Temp_1(i,2),'g+');    text(stats_1(i).BoundingBox(1)-10,stats_1(i).BoundingBox(2),num2str(i),'Color','y','FontSize',12);endhold on;%依照矩形框提取原始圖像灰度信息Temp_qz = fix(Temp_1);gray_x = cell(num,1);%基於最小外接矩形提取原圖像目標區域for i = 1:num    gray_x{i,1}= I_gray(Temp_qz(i,2):(Temp_qz(i,2)+Temp_qz(i,4)),Temp_qz(i,1):(Temp_qz(i,1)+Temp_qz(i,3)));    %figure,imshow(gray_x{i,1}),hold on;end%基於最小外接矩形提取二值化目標區域gray_y = cell(num,1);for i = 1:num    gray_y{i,1}= bw(Temp_qz(i,2):(Temp_qz(i,2)+Temp_qz(i,4)),Temp_qz(i,1):(Temp_qz(i,1)+Temp_qz(i,3)));    figure,imshow(gray_x{i,1}),hold on;end%基於最小外接矩形前景背景分離for i = 1:num    gray_xy{i,1}= double(gray_x{i,1}).* double(gray_y{i,1});    figure,imshow(gray_x{i,1}),hold on;end/<code>

運行程序

繪製最小外接矩形區域

基於最小外接矩形的圖像目標前景背景分離

運行

動態顯示

基於最小外接矩形的圖像目標前景背景分離

標記的目標圖像1

單獨顯示

基於最小外接矩形的圖像目標前景背景分離

灰度直方圖

<code>%顯示第一個目標未去除背景與去除背景後的灰度直方圖imshow(gray_x{1,1});figure,imhist(gray_x{1,1}),axis([0,255,0,120]);I = uint8(gray_xy{1,1});figure,imhist(I),axis([0,255,0,120]);/<code>
基於最小外接矩形的圖像目標前景背景分離

圖像背景未去除

像素集中分佈於兩極

合乎情理


去除背景之後

僅有單側有灰度數值顯示

基於最小外接矩形的圖像目標前景背景分離

此時可以對多目標域

進行求取灰度均值

<code>%求取目標區域灰度均值MEAN_1 = cell(num,1);for i = 1:num    o = nnz(gray_xy{i,1});    MEAN_1{i,1} = sum(sum(gray_xy{i,1}))/o;end/<code>

輸出

灰度均值數值

基於最小外接矩形的圖像目標前景背景分離


基於最小外接矩形的圖像目標前景背景分離

THE

END

基於最小外接矩形的圖像目標前景背景分離


分享到:


相關文章: