⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prueba_pcb_lda.m

📁 Implementation to linear, quadratic and logistic discriminant analysis, for examples
💻 M
字号:
%function prueba_PCB_LDA
clc,close all,clear all;
NomeImg1  = 'pcb1.bmp';
NomeImg2  = 'pcb2.bmp';
NomeMsck1 = 'pcbRoiCopper.bmp';%Cobre
NomeMsck2 = 'pcbRoiFiber.bmp';%
%**************************************************************************
%                                         CAPTURA
%**************************************************************************
%se lee las imagenes
Img1      = imread(NomeImg1);
Img2      = imread(NomeImg2);

Msck11 = imread(NomeMsck1);
Msck12 = imread(NomeMsck2);
Msck13 = ((~Msck11)&(~Msck12));
%transformando as imagenes a doble precision
Img1     = double(rgb2gray(Img1));
Img2     = double(rgb2gray(Img2));

[lh,lv]    = size(Img1);
lh_2      = round(lh/2);
%generando la imagen de regiones teorica
Msck=zeros(lh,lv);
Msck(find(Msck11==1))=1;
Msck(find(Msck12==1))=2;
Msck(find(Msck13==1))=3;
%**************************************************************************
%                                  ENTRENAMIENTO
%**************************************************************************
%Datos de entrenamiento
Img1Entr = Img1(:);
MsckEntr = Msck(:);

f = lda( Img1Entr, MsckEntr); 
%g = qda( Img1Entr, MsckEntr);
h = logda( Img1Entr, MsckEntr);

disp('_____________________LDA_________________');disp(f)
%disp('_____________________QDA_________________');disp(g)
disp('____________________LOGDA________________');disp(h)
%**************************************************************************
%                                  VALIDACION
%**************************************************************************
%Datos de validacion
[lh,lv]= size(Img2);
Img1Vald  = Img2(:);

%Utilizando un LDA
[MsckExpF postF] = classify(f, Img1Vald);
%Utilizando un QDA
%[MsckExpG postG] = classify(g, Img1Vald);
%Utilizando un LOGDA
[MsckExpH postH] = classify(h, Img1Vald);

%comparacion de errores
%[mFG alphaFG] = mcnemar(MsckVald, f(Img1Vald), g(Img1Vald));
[mFH alphaFH] = mcnemar(MsckVald, f(Img1Vald), h(Img1Vald));
%[mHG alphaHG] = mcnemar(MsckVald, h(Img1Vald), g(Img1Vald));
%fprintf('\n mFG =%f mFH =%f mHG =%f \n', mFG, mFH, mHG);
%fprintf('\n alphaFG = %f alphaFH = %f alphaHG = %f \n', alphaFG, alphaFH, alphaHG);

MsckExpF = reshape( MsckExpF, lh, lv );
%MsckExpG = reshape( MsckExpG, lh, lv );
MsckExpH = reshape( MsckExpH, lh, lv );

%determinando las probabilidades aposteriori:
fg1=figure(1);
set(fg1,'Color','w');
set(fg1,'Name','IMAGEN SEGMENTADA:  1-Cobre 2-Placa 3-Hueco','NumberTitle','on');
colormap('default');
subplot(231),imshow(Img1,[0 255]);title('Imagen Real');colorbar('horiz');
subplot(232),imshow(Msck,[1 3]);title('Imagen Segmentada');colorbar('horiz');
subplot(233),imshow(MsckExpF,[1 3]);title('Imagen Segmentada LDA');colorbar('horiz');
%subplot(234),imshow(MsckExpG,[1 3]);title('Imagen Segmentada QDA');colorbar('horiz');
subplot(235),imshow(MsckExpH,[1 3]);title('Imagen Segmentada LOGDA');colorbar('horiz');


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -