Skip to content

Instantly share code, notes, and snippets.

View johnnyferreiradev's full-sized avatar

Johnny Ferreira johnnyferreiradev

View GitHub Profile
@johnnyferreiradev
johnnyferreiradev / TranformadaFourierMaisFiltro.m
Last active April 9, 2019 00:05
Transformada de Fourier com Filtro Passa Baixa
%Deve-se digitar na janela de comandos para funcionar: pkg load signal
clear all;
close all;
clc;
fs=1000; Ts=1/fs;
f1=20;
DigFreq1=2*pi*f1/fs;
f2=30;
@johnnyferreiradev
johnnyferreiradev / TransformadaFourier.m
Created April 8, 2019 23:46
Transformada de Fourier
clear all;
close all;
clc;
fs=1000; Ts=1/fs;
f1=20;
DigFreq1=2*pi*f1/fs;
f2=30;
DigFreq2=2*pi*f2/fs;
@johnnyferreiradev
johnnyferreiradev / Fila.js
Last active April 1, 2019 19:37
Algoritmo de Fila implementado em uma classe ES6 ou superior
function Fila(list) {
this.list = list
this.add = elem => {
this.list.push(elem)
return this.list
}
this.remove = () => {
this.list.shift()
@johnnyferreiradev
johnnyferreiradev / ComparandoFrequencias.m
Last active March 28, 2019 00:36
Comparando duas fuções sen
clear all
clc
f1 = 10; % Frequencia
f2 = 5; % Frequencia
w1 = 2*pi*f1; % Frequencia angular
w2 = 2*pi*f2; % Frequencia angular
t = 0:0.001:1; % Tempo
@johnnyferreiradev
johnnyferreiradev / FuncaoSeno.m
Created March 28, 2019 00:24
Função seno da frequencia x tempo
clear all
clc
f = 10; % Frequencia
w = 2*pi*f; % Frequencia angular
t = 0:0.001:1; % Tempo
y = sin(w*t) % Funcao
@johnnyferreiradev
johnnyferreiradev / servidorRotas_HTTP_URL_FS.js
Created March 21, 2019 13:18
Servidor de rotas com leitura e escrita de arquivos html usando http, url e fs (NodeJs)
const http = require('http')
const url = require('url')
const fs = require('fs')
const server = http.createServer(function(req, res){
var result = url.parse(req.url, true)
const lerArquivo = (caminho) => {
fs.readFile(__dirname + caminho, function(err, html){
res.writeHeader(200, {"Content-Type": "text/html"})
@johnnyferreiradev
johnnyferreiradev / SistemaPDI_filtrosPassaAltas.cpp
Created March 16, 2019 17:15
Sistema de processamento de imagens digitais na aplicação de filtros passa alta (Laplaciano, Operadores de Robert, Prewitt e Sabel). O sistema compila 4 imagens. A duas dessas imagens são aplicados um filtro gaussiano para remoção de ruído. Foi utilizado a biblioteca OpenCV.
#include <iostream>
#include <opencv2/opencv.hpp>
#include <math.h>
using namespace cv;
using namespace std;
String dirSaida = "/home/johnny/Documentos/Sistemas de Informacao/S4/PDI/Projetos/PDI_Experimento_PassaAltas/Saidas/";
String imagensEntrada[] = {"/home/johnny/Documentos/Sistemas de Informacao/S4/PDI/Projetos/PDI_Experimento_PassaAltas/Entradas/crianca.jpg",
"/home/johnny/Documentos/Sistemas de Informacao/S4/PDI/Projetos/PDI_Experimento_PassaAltas/Entradas/lenna.jpg",
@johnnyferreiradev
johnnyferreiradev / filtroGaussiano.cpp
Last active March 16, 2019 14:53
Funções responsáveis pela criação de um filtro gaussiano de dimensões dinâmicas para processamento digital de imagens. Seu funcionamento depende de uma função para convolução de forma genérica.
void criarGaussiano(float **mascara, int largura, int altura){
// adotando desvio padrão = 1,0
float sigma = 1.0;
float r, s = 2.0 * sigma * sigma;
// variável para somatório
float soma = 0.0;
// delimitadores para máscara simétrica com média em (0,0)
int m = (largura-1)/2;
@johnnyferreiradev
johnnyferreiradev / filtroLaplaciano.cpp
Created March 16, 2019 14:46
Filtro passa altas Laplaciano para processamento digital de imagens (Filtro 3x3). Este filtro depende de uma função de convolução genérica.
Mat filtroLaplaciano(Mat img){
float **Masc = (float **) malloc (3 *sizeof (float*));
for(int i=0; i<3; i++){
Masc[i] = (float *) malloc (3 *sizeof (float));
}
Masc[0][0] = 0; Masc[0][1] = -1; Masc[0][2] = 0;
Masc[1][0] = -1; Masc[1][1] = 4; Masc[1][2] = -1;
Masc[2][0] = 0; Masc[2][1] = -1; Masc[2][2] = 0;
@johnnyferreiradev
johnnyferreiradev / operadorSabel.cpp
Created March 16, 2019 14:44
Operadores de Sabel para processamento digital de imagens (Filtro 3x3)
Mat operadoresSabel(Mat img){
Mat imgResultante = img.clone();
int gx,gy;
for(int i=0; i< img.rows; i++){
for(int j=0; j < img.cols; j++){
gx = (img.at<uchar>(i+1,j-1) + 2*(img.at<uchar>(i+1,j)) + img.at<uchar>(i+1,j+1)) -
(img.at<uchar>(i-1, j-1) + 2*(img.at<uchar>(i-1, j)) + img.at<uchar>(i-1, j+1));