資源簡介
檢測海上或者內行航道上的紅外船舶目標 目標分割采用的是邊緣信息 注釋清晰 適合初學者
代碼片段和文件信息
tic
clear
str=‘F:\matlab\an\bin\tupian\目標圖片\正樣本\‘;
str1=‘F:\matlab\an\bin\tupian\目標圖片\負樣本\‘;
SAVE_train=[72?9];%設定目標矩陣?以作訓練樣本;62個樣本?每個樣本7個特征
i_SAVE_train=1;
SAVE_train_label=[1?0?1?0?1?0?1?0?1?0?1?0?1?0?1?0?1?0?...
????1?0?1?0?1?0?1?0?1?0?1?0?1?0?1?0?1?0?1?0?1?0?1?0?1?...
????0?1?0?1?0?1?0?1?0?1?0?1?0?1?0?1?0?1?0?...
????1?0?1?0?1?0?1?0?1?0?];
%SAVE_train_label=double(SAVE_train_label);
SAVE_train_label=SAVE_train_label‘;%將SAVE_train_label轉置為列向量?以符合SVM數據訓練的格式要求
%[mm?nn]=size(SAVE_train_label);disp(mm);
test_train_label=1;%假設所有的測試樣本均為1類并根據判斷的正確率來選擇最終屬于哪一類
%%?求目標的特征
for?i0=1:36
????I=imread([strnum2str(i0)‘.jpg‘]);?%依次讀取每一幅圖像
????I1=imread([str1num2str(i0)‘.jpg‘]);?%依次讀取每一幅圖像
????I=imresize(I[80?160]);%將樣本化為統一大小
????I1=imresize(I1[80?160]);%將樣本化為統一大小
????%figure;imshow(I);
????%I=double(rgb2gray(I));
????%I1=double(rgb2gray(I1));
????%I=adapthisteq(I);
????%I1=adapthisteq(I1);
????
????%%?求不變矩,作為目標的特征
????%hu=M_GetImageHuJu(I);
????%hu=Hu_MV_Nicolas(I);
????I=rgb2gray(I);
????I=imadjust(I[0?1][1?0]);%取反操作
????I=imadjust(I);%增強對比度
????%I=edge(I‘sobel‘);
????%figure;imshow(I);
?????
%?????se90=strel(‘line‘390);
%?????se0=strel(‘line‘30);
%?????se?=?strel(‘disk‘10);
%?????I=imclose(Ise);
????%figure;imshow(I);
????
????[m0?n0]=size(I);
????for?i1=1:m0
???????for?j1=1:n0
????????if?I(i1j1)>=150
????????????I(i1j1)=255;
????????else?I(i1j1)=1;
????????end
???????end
????end
????%figure;imshow(I);
%?????I=edge(I‘canny‘);%figure;imshow(I);
%?????I=imfill(I‘holes‘);
????
???%%?腐蝕處理
????se90=strel(‘line‘390);
????se0=strel(‘line‘30);
????I=imerode(I[se90?se0]);
????I=imerode(I[se90?se0]);%處理兩次
????%figure;imshow(I);
????
????image0=double(I);
????m00=sum(sum(image0));
????m10=0;
????m01=0;
????[rowcol]=size(image0);
????for?i=1:row
????????for?j=1:col
????????m10=m10+i*image0(ij);
????????m01=m01+j*image0(ij);
????????end
????end
????u10=m10/m00;
????u01=m01/m00;
????
????n20?=?0;n02?=?0;n11?=?0;n30?=?0;n12?=?0;n21?=?0;n03?=?0;
????for?i=1:row
????????for?j=1:col
????????n20=n20+i^2*image0(ij);
????????n02=n02+j^2*image0(ij);
????????n11=n11+i*j*image0(ij);
????????n30=n30+i^3*image0(ij);
????????n03=n03+j^3*image0(ij);
????????n12=n12+i*j^2*image0(ij);
????????n21=n21+i^2*j*image0(ij);
????????end
????end
????n20=n20/m00^2;
????n02=n02/m00^2;
????n11=n11/m00^2;
????n30=n30/m00^2.5;
????n03=n03/m00^2.5;
????n12=n12/m00^2.5;
????n21=n21/m00^2.5;
????????
????h1?=?n20?+?n02;??????????????????????h2?=?(n20-n02)^2?+?4*(n11)^2;
????h3?=?(n30-3*n12)^2?+?(3*n21-n03)^2;??h4?=?(n30+n12)^2?+?(n21+n03)^2;
????h5?=?(n30-3*n12)*(n30+n12)*((n30+n12)^2-3*(n21+n03)^2)+(3*n21-n03)*(n21+n03)*(3*(n30+n12)^2-(n21+n03)^2);
????h6?=?(n20-n02)*((n30+n12)^2-(n21+n03)^2)+4*n11*(n30+n12)*(n21+n03);
????h7?=?(3*n21-n03)*(n30+n12)*((n30+n12)^2-3*(n21+n03)^2)+(3*n12-n30)*(n21+n03)*(3*(n30+n12)^2-(n21+n03)^2);
????h8=mean(image0(:));%求均值
????h9=st
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12004??2013-08-13?23:18??first.m
-----------?---------??----------?-----??----
????????????????12004????????????????????1
- 上一篇:MFC網絡編程實例
- 下一篇:nachos-lab 02
評論
共有 條評論