Últimas

Pensando como o Software II: Classificação Supervisionada Método do Paralelepípedo – MATLAB

Pessoal Neste tutorial apresento a resolução do exercício proposto no post anterior pelo Método
do Paralelepípedo, que apesar de ser um dos métodos mais simples da Classificação Supervisionada
tem o seu valor por ser mais rápido no processamento, mas informo que perdemos um pouco na
“eficiência” devido suas restrições na hora de classificar, por isso aconselho que seja utilizado quando
se deseja “separar” poucas variedades.

por exemplo:
Realizar a classificação em uma imagem que só tenha Aguá de Vegetação.
Pode parecer banal, mas acredite tem suas aplicações.

Vejam a Resolução no MATLAB:

%Classificação Supervisionada
%Método do Paralelepípedo

clear
clc

%CLASSE 1
C1B1=[16;18;20;11;17;18;14;10;4;7] %AMOSTRAS DA BANDA 1
C1B2=[13;13;13;12;12;11;11;10;9;9] %AMOSTRAS DA BANDA 2
%CLASSE 2
C2B1=[8;9;6;8;5;7;4;6;4;3] %AMOSTRAS DA BANDA 1
C2B2=[8;7;7;6;5;5;4;3;2;2] %AMOSTRAS DA BANDA 2
%CLASSE 3
C3B1=[19;19;17;17;16;14;13;13;11;11] %MEDIA DAS AMOSTRAS DA BANDA 1
C3B2=[6;3;8;1;4;5;8;1;6;3] %MEDIA DAS AMOSTRAS DA BANDA 2

%Pixels:
C1X=5;
C1Y=9;
C2X=9;
C2Y=8;
C3X=15;
C3Y=9;

%valores máximos e mínimos
MAXC1B1 = max(C1B1);
MINC1B1 = min(C1B1);
MAXC1B2 = max(C1B2);
MINC1B2 = min(C1B2);

MAXC2B1 = max(C2B1);
MINC2B1 = min(C2B1);
MAXC2B2 = max(C2B2);
MINC2B2 = min(C2B2);

MAXC3B1 = max(C3B1);
MINC3B1 = min(C3B1);
MAXC3B2 = max(C3B2);
MINC3B2 = min(C3B2);

fprintf(‘——————-Teste para C1——————-\n’);
if C1X<=MAXC1B1 & C1X>=MINC1B1 & C1Y<=MAXC1B2 & C1Y>=MINC1B2
fprintf(‘O pixel X1 pertence a Classe 1 \n’);
end

if C1X<=MAXC2B1 & C1X>=MINC2B1 & C1Y<=MAXC2B2 & C1Y>=MINC2B2
fprintf(‘O pixel X1 pertence a Classe 2 \n’);
end

if C1X<=MAXC3B1 & C1X>=MINC3B1 & C1Y<=MAXC3B2 & C1Y>=MINC3B2
fprintf(‘O pixel X1 pertence a Classe 3 \n’);
end

fprintf(‘\n’);
fprintf(‘—————————————————\n’);
fprintf(‘\n’);

fprintf(‘——————-Teste para C2——————-\n’);
if C2X<=MAXC1B1 & C2X>=MINC1B1 & C2Y<=MAXC1B2 & C2Y>=MINC1B2
fprintf(‘O pixel X2 pertence a Classe 1 \n’);
end

if C2X<=MAXC2B1 & C2X>=MINC2B1 & C2Y<=MAXC2B2 & C2Y>=MINC2B2
fprintf(‘O pixel X2 pertence a Classe 2 \n’);
end

if C2X<=MAXC3B1 & C2X>=MINC3B1 & C2Y<=MAXC3B2 & C2Y>=MINC3B2
fprintf(‘O pixel X2 pertence a Classe 3 \n’);
end

fprintf(‘\n’);
fprintf(‘—————————————————\n’);
fprintf(‘\n’);

fprintf(‘——————-Teste para C3——————-\n’);
if C3X<=MAXC1B1 & C3X>=MINC1B1 & C3Y<=MAXC1B2 & C3Y>=MINC1B2
fprintf(‘O pixel X3 pertence a Classe 1 \n’);
end

if C3X<=MAXC2B1 & C3X>=MINC2B1 & C3Y<=MAXC2B2 & C3Y>=MINC2B2
fprintf(‘O pixel X3 pertence a Classe 2 \n’);
end

if C3X<=MAXC3B1 & C3X>=MINC3B1 & C3Y<=MAXC3B2 & C3Y>=MINC3B2
fprintf(‘O pixel X3 pertence a Classe 3 \n’);
end

fprintf(‘\n’);
fprintf(‘—————————————————\n’);
fprintf(‘\n’);

RESULTADO:
C1B1 =

16
18
20
11
17
18
14
10
4
7
C1B2 =

13
13
13
12
12
11
11
10
9
9
C2B1 =

8
9
6
8
5
7
4
6
4
3
C2B2 =

8
7
7
6
5
5
4
3
2
2
C3B1 =

19
19
17
17
16
14
13
13
11
11
C3B2 =

6
3
8
1
4
5
8
1
6
3

——————-Teste para C1——————-
O pixel X1 pertence a Classe 1

—————————————————

——————-Teste para C2——————-
O pixel X2 pertence a Classe 2

—————————————————

——————-Teste para C3——————-
O pixel X3 pertence a Classe 1

—————————————————

>>

O interessante é perceber a diferença entre as classificações, os resultados foram diferentes devido o Método

da Distância Mínima da Média ser mais eficiente do que o Método do Paralelepípedo.
Existem outros métodos melhores, um dos mais usados é o Máxima verossimilhança, mas irei parar por aqui!

=)

Espero que tenham gostado.

Pensando como o Software: Classificação Supervisionada Método da Distância Mínima da Média – MATLAB

Realização da Classificação Supervisionada de uma imagem multiespectral referente a uma região bem conhecida a priori, dispõe-se de um conjunto de dados de treinamento para três classes de informação, onde cada pixel é caracterizado em apenas duas componentes espectrais: B1 e B2.
Este exercício foi proposto por Elaine Costa, Professora de Processamento Digital de Imagens do IFG
Resolvendo o exercício no MATLAB
por: Amarildo Junior
%Classificação Supervisionada
%Metodo: Distancia Minima da Media
clear
clc
%CLASSE 1
C1B1=(16+18+20+11+17+18+14+10+4+7)/(10); %MEDIA DAS AMOSTRAS DA BANDA 1
C1B2=(13+13+13+12+12+11+11+10+9+9)/(10); %MEDIA DAS AMOSTRAS DA BANDA 2
%CLASSE 2
C2B1=(8+9+6+8+5+7+4+6+4+3)/(10); %MEDIA DAS AMOSTRAS DA BANDA 1
C2B2=(8+7+7+6+5+5+4+3+2+2)/(10); %MEDIA DAS AMOSTRAS DA BANDA 2
%CLASSE 3
C3B1=(19+19+17+17+16+14+13+13+11+11)/(10); %MEDIA DAS AMOSTRAS DA BANDA 1
C3B2=(6+3+8+1+4+5+8+1+6+3)/(10); %MEDIA DAS AMOSTRAS DA BANDA 2
M1=[C1B1;C1B2]
M2=[C2B1;C2B2]
M3=[C3B1;C3B2]
%Pixels:
X1=[5;9];
X2=[9;8];
X3=[15;9];
clc
fprintf(‘Calculo para o Primeiro Pixel’);
GM1=2*X1′*M1-M1′*M1
GM2=2*X1′*M2-M2′*M2
GM3=2*X1′*M3-M3′*M3
if GM1>GM2 & GM1>GM3
    fprintf(‘O pixel X1 pertence a Classe 1 \n’);
elseif GM2>GM1 & GM2>GM3
    fprintf(‘O pixel X1 pertence a Classe 2 \n’);
elseif GM3>GM1 & GM3>GM2
    fprintf(‘O pixel X1 pertence a Classe 3 \n’);
end
fprintf(‘\n’);
fprintf(‘—————————————————\n’);
fprintf(‘\n’);
fprintf(‘Calculo para o Segundo Pixel’);
GM12=2*X2′*M1-M1′*M1
GM22=2*X2′*M2-M2′*M2
GM32=2*X2′*M3-M3′*M3
if GM12>GM22 & GM12>GM32
    fprintf(‘O pixel X2 pertence a Classe 1 \n’);
elseif GM22>GM12 & GM22>GM32
    fprintf(‘O pixel X2 pertence a Classe 2 \n’);
elseif GM32>GM12 & GM32>GM22
    fprintf(‘O pixel X2 pertence a Classe 3 \n’);
end
fprintf(‘\n’);
fprintf(‘—————————————————\n’);
fprintf(‘\n’);
fprintf(‘Calculo para o Terceiro Pixel’);
GM13=2*X3′*M1-M1′*M1
GM23=2*X3′*M2-M2′*M2
GM33=2*X3′*M3-M3′*M3
if GM13>GM23 & GM13>GM33
    fprintf(‘O pixel X3 pertence a Classe 1 \n’);
elseif GM23>GM13 & GM23>GM33
    fprintf(‘O pixel X3 pertence a Classe 2 \n’);
elseif GM33>GM13 & GM33>GM23
    fprintf(‘O pixel X3 pertence a Classe 3 \n’);
end
RESULTADO:
Calculo para o Primeiro Pixel
GM1 =
   28.4600
GM2 =
   88.1900
GM3 =
  -14.2500
O pixel X1 pertence a Classe 2
—————————————————
Calculo para o Segundo Pixel
GM12 =
  113.8600
GM22 =
  126.3900
GM32 =
   96.7500
O pixel X2 pertence a Classe 2 
—————————————————
Calculo para o Terceiro Pixel
GM13 =
  298.4600
GM23 =
  208.1900
GM33 =
  285.7500
O pixel X3 pertence a Classe 1
>>

Visual C# + Mysql – Formulário de Cadastro de clientes para Web

Pessoal, este mês finalizei meu curso de Programação e como trabalho de conclusão desenvolvi
este formulário de Cadastro de Clientes para Web utilizando o Visual C# + Mysql.

Código:

Realizando a Conexão com o Banco de Dados

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;

namespace Trabalho1
{
public partial class _Default : System.Web.UI.Page
{
protected void Default_Load(object sender, EventArgs e)
{

}

protected void Salvar_bt_Click(object sender, EventArgs e)
{
MySqlConnection conn; //declaração da conexão
string conexao = “Server=localhost; User Id=root; Password=”; Database=cadastro;”;
conn = new MySqlConnection(conexao);
string comando = “insert into formulario (nome,cpf,endereco,cidade,estado,telefone,celular) “;
comando += “values (‘” + nome_tb.Text + “‘,’” + cpf_tb.Text + “‘,’”;
comando += endereco_tb.Text + “‘,’” + cidade_tb.Text + “‘,’” + estado_tb.Text;
comando += “‘,’” + telefone_tb.Text + “‘,’” + celular_tb.Text + “‘)”;
MySqlCommand cmd = new MySqlCommand(comando);
cmd.Connection = conn; //prepara a conexão para realizar a conexão
conn.Open(); //abrindo a conexão
cmd.ExecuteNonQuery(); //EXECUTAR a conexão MAS NÃO RETORNAR NENHUMA CONSULTA
conn.Close(); //fechando a conexão
id_1.Text = “”;
nome_tb.Text = “”;
cpf_tb.Text = “”;
endereco_tb.Text = “”;
cidade_tb.Text = “”;
estado_tb.Text = “Go”;
telefone_tb.Text = “”;
celular_tb.Text = “”;
}

}
}

Código do Formulário:

<%@ Page Title=”Cadastro” Language=”C#” MasterPageFile=”~/Site.master” AutoEventWireup=”true”
CodeBehind=”Default.aspx.cs” Inherits=”Trabalho1._Default” %>

<asp:Content ID=”HeaderContent” runat=”server” ContentPlaceHolderID=”HeadContent”>
</asp:Content>
<asp:Content ID=”BodyContent” runat=”server” ContentPlaceHolderID=”MainContent”>
<h2>
&nbsp;</h2>
<p>
&nbsp;<asp:Label ID=”id_lb” runat=”server” Text=”Id.:”></asp:Label>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<asp:TextBox ID=”id_1″ runat=”server” Width=”36px”></asp:TextBox>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</p>
<p>
&nbsp;<asp:Label ID=”Nome_lb” runat=”server” Text=”Nome.:”></asp:Label>
&nbsp;&nbsp;
<asp:TextBox ID=”nome_tb” runat=”server” Width=”275px”></asp:TextBox>
&nbsp;<asp:Label ID=”Cpf_lb” runat=”server” Text=”Cpf.:”></asp:Label>
&nbsp;<asp:TextBox ID=”cpf_tb” runat=”server”></asp:TextBox>
</p>
<p>
&nbsp;<asp:Label ID=”Endereco_lb” runat=”server” Text=”End.:”></asp:Label>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<asp:TextBox ID=”endereco_tb” runat=”server” Width=”270px”></asp:TextBox>
</p>
<p>
<asp:Label ID=”Cidade_lb” runat=”server” Text=”Cidade.:”></asp:Label>
&nbsp;
<asp:TextBox ID=”cidade_tb” runat=”server”></asp:TextBox>
&nbsp;
<asp:Label ID=”Estado_lb” runat=”server” Text=”Estado.:”></asp:Label>
&nbsp;<asp:DropDownList ID=”estado_tb” runat=”server” AutoPostBack=”True” Height=”23px”
Width=”46px”>
<asp:ListItem>AC</asp:ListItem>
<asp:ListItem>AL</asp:ListItem>
<asp:ListItem>AP</asp:ListItem>
<asp:ListItem>AM</asp:ListItem>
<asp:ListItem>BA</asp:ListItem>
<asp:ListItem>CE</asp:ListItem>
<asp:ListItem>DF</asp:ListItem>
<asp:ListItem>ES</asp:ListItem>
<asp:ListItem>GO</asp:ListItem>
<asp:ListItem>MA</asp:ListItem>
<asp:ListItem>MS</asp:ListItem>
<asp:ListItem>MG</asp:ListItem>
<asp:ListItem>PA</asp:ListItem>
<asp:ListItem>PB</asp:ListItem>
<asp:ListItem>PR</asp:ListItem>
<asp:ListItem>PE</asp:ListItem>
<asp:ListItem>PI</asp:ListItem>
<asp:ListItem>RJ</asp:ListItem>
<asp:ListItem>RN</asp:ListItem>
<asp:ListItem>RS</asp:ListItem>
<asp:ListItem>RO</asp:ListItem>
<asp:ListItem>RR</asp:ListItem>
<asp:ListItem>SC</asp:ListItem>
<asp:ListItem>SP</asp:ListItem>
<asp:ListItem>SE</asp:ListItem>
<asp:ListItem>TO</asp:ListItem>
<asp:ListItem Value=”MT”></asp:ListItem>
</asp:DropDownList>
</p>
<p>
<asp:Label ID=”Telefone_lb” runat=”server” Text=”Telefone.:”></asp:Label>
<asp:TextBox ID=”telefone_tb” runat=”server”></asp:TextBox>
&nbsp;
<asp:Label ID=”Celular_lb” runat=”server” Text=”Celular.:”></asp:Label>
&nbsp;<asp:TextBox ID=”celular_tb” runat=”server”></asp:TextBox>
</p>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<asp:Button ID=”Salvar” runat=”server” Text=”Salvar”
onclick=”Salvar_bt_Click” />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<asp:Button ID=”Limpar_bt” runat=”server” Text=”Limpar” />
</p>
<p>
&nbsp;</p>
<p>
&nbsp;</p>
</asp:Content>

No próximo post estarei explicando como criar um Banco de Dados com o Mysql

Visitem também nosso site GeoSenso

Derivative Calculator – Cálculo de Derivadas online

Todo Tecnólogo em Geoprocessamento se depara com a tal das derivadas em suas matérias iniciais,
hoje apresento à vocês um site que realiza o cálculo destas derivadas. Achei a página muito interessante
e resolvi compartilhar com vocês  para servir como base aos seus cálculos.

Para acessar clique na imagem abaixo.

Façam bom proveito.

acesse também http://www.geosenso.com

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.