WHAT IMAGE IS THIS?
-Ruído gaussiano: é um tipo de ruído aditivo que segue uma distribuição normal. É comum em imagens capturadas com sensores eletrônicos, como câmeras digitais.
-Ruído sal e pimenta: é um tipo de ruído impulsivo que adiciona pixels brancos ou pretos aleatoriamente na imagem. É comum em imagens capturadas em ambientes com baixa iluminação ou em transmissões de imagens.
– Ruído de Poisson: é um tipo de ruído que ocorre em imagens com baixa intensidade de luz, como imagens médicas ou astronômicas. É causado pela natureza probabilística da captura de fótons.
– Ruído de amplificador: é um tipo de ruído aditivo que ocorre em imagens capturadas com amplificadores eletrônicos, como em câmeras digitais.
– Ruído de tiro: é um tipo de ruído aditivo que ocorre em imagens capturadas com sensores eletrônicos, como câmeras digitais. É causado pela variação aleatória na quantidade de elétrons gerados pelos fotossensores.
– Ruído de quantização: é um tipo de ruído aditivo que ocorre em imagens digitais devido à limitação da resolução do sistema de aquisição de imagens.
– Granulação de filme: é um tipo de ruído aditivo que ocorre em imagens capturadas em filmes fotográficos. É causado pela variação aleatória na densidade de grãos de prata no filme.
– Ruído isotrópico: é um tipo de ruído aditivo que ocorre em imagens digitais devido à variação aleatória na intensidade dos pixels. – Ruído multiplicativo: é um tipo de ruído que ocorre em imagens capturadas por sistemas de radar ou ultrassom. É causado pela reflexão aleatória das ondas sonoras ou eletromagnéticas.
– Ruído periódico: é um tipo de ruído que ocorre em imagens digitais devido à interferência de sinais periódicos, como linhas de energia elétrica ou sinais de televisão.
Filtro de média: é uma técnica de filtragem simples que substitui cada pixel na imagem pela média dos pixels em sua vizinhança. É eficaz para remover ruído gaussiano e ruído de quantização.
Filtro de mediana: é uma técnica de filtragem que substitui cada pixel na imagem pela mediana dos pixels em sua vizinhança. É eficaz para remover ruído impulsivo, como ruído sal e pimenta.
– Filtro de Wiener: é uma técnica de filtragem que usa uma estimativa da densidade espectral de potência do sinal de imagem e do ruído para remover o ruído. É eficaz para remover ruído gaussiano.
Filtro de Kalman: é uma técnica de filtragem que usa um modelo estatístico para estimar o sinal de imagem original a partir do sinal degradado. É eficaz para remover ruído gaussiano e ruído de amplificador.
– Filtro de Anisotrópico: é uma técnica de filtragem que usa uma equação diferencial parcial para remover o ruído enquanto preserva as bordas da imagem. É eficaz para remover ruído gaussiano e ruído de amplificador.
– Filtro de média: – Vantagens: é uma técnica de filtragem simples e fácil de implementar. É eficaz para remover ruído gaussiano e ruído de quantização. – Desvantagens: pode suavizar demais as bordas da imagem e reduzir a nitidez da imagem.
– Filtro de mediana: – Vantagens: é uma técnica de filtragem robusta que é eficaz para remover ruído impulsivo, como ruído sal e pimenta. Preserva as bordas da imagem. – Desvantagens: pode introduzir artefatos na imagem, como halos ao redor das bordas.
– Filtro de Wiener: – Vantagens: é uma técnica de filtragem que usa uma estimativa da densidade espectral de potência do sinal de imagem e do ruído para remover o ruído. É eficaz para remover ruído gaussiano. – Desvantagens: pode introduzir artefatos na imagem, como bordas borradas.
– Filtro de Kalman: – Vantagens: é uma técnica de filtragem que usa um modelo estatístico para estimar o sinal de imagem original a partir do sinal degradado. É eficaz para remover ruído gaussiano e ruído de amplificador. – Desvantagens: é computacionalmente intensivo e pode ser sensível a erros no modelo estatístico.
– Filtro de Anisotrópico: – Vantagens: é uma técnica de filtragem que usa uma equação diferencial parcial para remover o ruído enquanto preserva as bordas da imagem. É eficaz para remover ruído gaussiano e ruído de amplificador. – Desvantagens: é computacionalmente intensivo e pode introduzir artefatos na imagem, como bordas serrilhadas.
Filtro Inverso: Busca compensar ou inverter os efeitos de um sistema, sendo usado em processamento de sinal para melhorar a qualidade. Filtro Pseudo-Inverso: Similar ao inverso, mas aplicado em situações em que a matriz não é diretamente inversível. Usa técnicas alternativas para obter uma solução aproximada.
Filtro de Salsicha: Geralmente referido como filtro passa-baixa, atenua as frequências mais altas em um sinal, destacando as mais baixas. Filtro de Mínimos Quadrados Restrito: Utilizado para ajustar um modelo aos dados minimizando a soma dos quadrados das diferenças entre os valores previstos e observados, com restrições adicionais.
Filtro Máximo: Maximiza uma determinada característica, sendo aplicado em diversos contextos, como processamento de imagem e comunicações.
Filtro Mínimo: Minimiza uma característica específica, frequentemente usado em problemas de otimização. Filtro Mediano: Substitui cada pixel em uma imagem pela mediana dos valores dos pixels vizinhos, sendo eficaz para remover ruídos.
Filtro Médio: Calcula a média dos valores em uma região específica, útil para suavizar imagens ou sinais.
Filtro Adaptativo: Ajusta seus parâmetros automaticamente em resposta às características do sinal ou ambiente, proporcionando flexibilidade em várias condições.
Filtro Inverso: Vantagens: Pode oferecer uma compensação precisa. Desvantagens: Sensível a ruídos, instabilidades numéricas.
Filtro Pseudo-Inverso: Vantagens: Útil quando a matriz não é inversível. Desvantagens: A solução é aproximada, não ideal para todos os casos. Filtro de Salsicha: Vantagens: Remove ruídos de alta frequência. Desvantagens: Pode causar suavização excessiva e perda de detalhes.
Filtro de Mínimos Quadrados Restrito: Vantagens: Lida com restrições específicas. Desvantagens: Pode ser sensível a condições iniciais, computacionalmente exigente.
Filtro Máximo: Vantagens: Destaca características específicas. Desvantagens: Pode realçar ruídos indesejados.
Filtro Mínimo: Vantagens: Útil para remoção de ruídos. Desvantagens: Suaviza detalhes importantes.
Filtro Mediano: Vantagens: Eficaz na remoção de ruídos impulsivos. Desvantagens: Pode não ser tão eficaz para outros tipos de ruídos.
Filtro Médio: Vantagens: Suaviza sinais preservando tendências. Desvantagens: Pode não funcionar bem com outliers.
Filtro Adaptativo: Vantagens: Ajusta-se automaticamente a mudanças nas condições. Desvantagens: Complexidade computacional, sensibilidade a condições extremas.
——————————————————————————————————————————————————————————————-
LIMIARIZAÇÃO=
% Carregar a imagem
f = imread(‘football.jpg’); % Substitua ‘football.jpg’ pelo nome da sua imagem
% Converter para escala de cinza
grayImage = rgb2gray(f);
% Definir o limiar
threshold = 0.5; % Pode ser um valor entre 0 e 1, ou um valor específico para imagens em 8 bits (0 a 255)
% Limiarizar a imagem
binaryImage = imbinarize(grayImage, threshold);
% Exibir as imagens
figure;
subplot(1, 2, 1);
imshow(grayImage);
title(‘Imagem em Escala de Cinza’);
subplot(1, 2, 2);
imshow(binaryImage);
title(‘Imagem Limiarizada’);
————————————————————————————————–
ESCALA DE CINZA – BINARIZAÇÃO
f=rgb2gray(imread(‘peppers.png’));
bw=im2bw(f,0.5);
imshow(bw)
m=127;
E=20;
g=1./(1+(m./(double(f)+ eps)).^E)
subplot(1,2,1);imshow(f);subplot(1,2,2);imshow(g);
——————————————————————————————-
AJUSTE DE CONTRASTE
f=rgb2gray(imread(‘peppers.png’));
bw=im2bw(f,0.5);
imshow(bw)
g1= imadjust(f,[0 1],[1 0],0.6);
g2= imadjust(f,[0 1],[1 0],1);
g3= imadjust(f,[0 1],[1 0 ],4);
subplot(1,3,1)
imshow(g1)
subplot(1,3,2)
imshow(g2)
subplot(1,3,3)
imshow(g3)
————————————————————————————————-
imread(‘peppers.png’);
g1= imadjust(f,[0 1],[1 0],0.6);
g2= imadjust(f,[0 1],[1 0],1);
g3= imadjust(f,[0 1],[1 0],4);
subplot(1,3,1)
imshow(g1)
subplot(1,3,2)
imshow(g2)
subplot(1,3,3)
imshow(g3)
——————————————————————————————————————
i=imread(‘peppers.png’);
g=rgb2gray(i);
s=im2uint8(mat2gray(log(1+double(g))));
subplot(1,3,1);imshow(i);subplot(1,3,2);imshow(g);
subplot(1,3,3);imshow(s);
——————————————————————————————————————
f=rgb2gray(imread(‘peppers.png’));
[P, Q]=size(f);
F=fft2(f, 2*P, 2*Q); F=abs(F) ;Fc=fftshift(F);
subplot(1,3,1);imshow(f);subplot(1,3,2);imshow(Fc,[]);
s=im2uint8(mat2gray(log( 1 + double(Fc))));
subplot(1,3,3); imshow(s,[]);
——————————————————————————————————————
fruido=rgb2gray(imread( "boy-6281260_640.jpg"));
w2= (1/64)*ones(8);
g2=im2uint8(mat2gray(imfilter(double(fruido),w2)));
subplot(1,2,1);imshow(fruido);subplot(1,2,2);imshow(g2);
——————————————————————————————————————
A=imread("boy-6281260_640.jpg");
subplot(1,2,1); imshow (A);
k= fspecial(‘average’, [9 9]);
B=imfilter(A, k,"symmetric");
subplot(1,2,2); imshow(B);
————————————————————————————————-
I=rgb2gray(imread(‘boy-6281260_640.jpg’));
subplot(1,3,1), imshow(I);
Isp = imnoise (I, ‘salt & pepper’, 0.03);
subplot(1,3,2), imshow(Isp);
Ig = imnoise (I,’gaussian’, 0.02);
subplot(1,3,3), imshow(Ig);
————————————————————————————————–
I=rgb2gray(imread(‘boy-6281260_640.jpg’));
subplot(1,3,1), imshow(I);
Isp = imnoise (I, ‘salt & pepper’, 0.03);
subplot(1,3,2), imshow(Isp);
Ig = imnoise (I,’gaussian’, 0.02);
subplot(1,3,3), imshow(Ig);
K=ones (3,3)/9;
I_m = imfilter(I,k);
Isp_m = imfilter(Isp,k);
Ig_m = imfilter(Ig,k);
subplot(1,3,1), imshow(I_m);
subplot(1,3,2), imshow(Isp_m);
subplot(1,3,3), imshow(Ig_m);
%%
I_m = medfilt2(I,[3 3]);
Isp_m = medfilt2(Isp,[3 3]);
Ig_m = medfilt2(Ig, [3 3]);
subplot(1,3,1), imshow(I_m);
subplot(1,3,2), imshow(Isp_m);
subplot(1,3,3), imshow(Ig_m);
%%
I_m = ordfilt2(I,25,ones(5,5));
Isp_m = ordfilt2(Isp,25,ones(5,5));
Ig_m = ordfilt2(Ig,25,ones(5,5));
subplot(1,3,1), imshow(I_m);
subplot(1,3,2), imshow(Isp_m);
subplot(1,3,3), imshow(Ig_m);
——————————————————-
Guide —
function varargout = EstudandoThomas(varargin)
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @EstudandoThomas_OpeningFcn, …
‘gui_OutputFcn’, @EstudandoThomas_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code – DO NOT EDIT
% — Executes just before EstudandoThomas is made visible.
function EstudandoThomas_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% — Outputs from this function are returned to the command line.
function varargout = EstudandoThomas_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
% — Executes on button press in Abrir.
function Abrir_Callback(hObject, eventdata, handles)
global im1
[filename,path]=uigetfile(‘*.jpg;*.gif;*.tif;*.png’,’Selecione Imagem’);
im1=imread(strcat(path,filename));
axes(handles.axes1);
imshow(im1);
% — Executes on button press in Cinza.
function Cinza_Callback(hObject, eventdata, handles)
global im1 gray
gray=rgb2gray(im1);
axes(handles.axes2);
imshow(gray);
% — Executes on button press in Histograma.
function Histograma_Callback(hObject, eventdata, handles)
global gray
axes(handles.axes4);
imhist(gray);
% — Executes on button press in Equalizar.
function Equalizar_Callback(hObject, eventdata, handles)
global gray
axes(handles.axes5);
eq=histeq(gray);
imhist(eq);
% — Executes on button press in Salvar.
function Salvar_Callback(hObject, eventdata, handles)
F=getimage(handles.axes3);
FileName=uiputfile({‘*.jpg;*.tif;*.png;*.gif’,’All Image Files’;…
‘*.*’,’All Files’ },’Save Image’,…
‘C:Worknewfile.jpg’)
imwrite(F,FileName,’jpg’);
% — Executes on button press in Reset.
function Reset_Callback(hObject, eventdata, handles)
cla(handles.axes1,’reset’);
cla(handles.axes2,’reset’);
cla(handles.axes3,’reset’);
cla(handles.axes4,’reset’);
cla(handles.axes5,’reset’);
% — Executes on button press in Media.
function Media_Callback(hObject, eventdata, handles)
global gray n
axes(handles.axes3);
w1=(1/(n^2))*ones(n);
g1=im2uint8(mat2gray(imfilter(double(gray),w1)));
imshow(g1);
% — Executes on button press in Mediana.
function Mediana_Callback(hObject, eventdata, handles)
global gray n
axes(handles.axes3);
posicao=double((n^2-1)/2)+1;
g2=ordfilt2(gray,posicao,true(n));
imshow(g2);
% — Executes on button press in Maximo.
function Maximo_Callback(hObject, eventdata, handles)
global gray n
axes(handles.axes3);
g2=ordfilt2(gray,n*n,true(n));
imshow(g2);
% — Executes on button press in Minimo.
function Minimo_Callback(hObject, eventdata, handles)
global gray n
axes(handles.axes3);
g2=ordfilt2(gray,1,true(n));
imshow(g2);
function Matriz_Callback(hObject, eventdata, handles)
global n
str=get(handles.Matriz,’String’);
n=str2double(str);
% — Executes during object creation, after setting all properties.
function Matriz_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end
% — Executes on button press in Binario.
function Binario_Callback(hObject, eventdata, handles)
global gray
binario=im2bw(gray);
axes(handles.axes3);
imshow(binario)
% — Executes on button press in Negativo.
function Negativo_Callback(hObject, eventdata, handles)
global gray
neg = imadjust(gray, [0 1], [1 0],1);
axes(handles.axes3);
imshow(neg);-Ruído gaussiano: é um tipo de ruído aditivo que segue uma distribuição normal. É comum em imagens capturadas com sensores eletrônicos, como câmeras digitais.
-Ruído sal e pimenta: é um tipo de ruído impulsivo que adiciona pixels brancos ou pretos aleatoriamente na imagem. É comum em imagens capturadas em ambientes com baixa iluminação ou em transmissões de imagens.
– Ruído de Poisson: é um tipo de ruído que ocorre em imagens com baixa intensidade de luz, como imagens médicas ou astronômicas. É causado pela natureza probabilística da captura de fótons.
– Ruído de amplificador: é um tipo de ruído aditivo que ocorre em imagens capturadas com amplificadores eletrônicos, como em câmeras digitais.
– Ruído de tiro: é um tipo de ruído aditivo que ocorre em imagens capturadas com sensores eletrônicos, como câmeras digitais. É causado pela variação aleatória na quantidade de elétrons gerados pelos fotossensores.
– Ruído de quantização: é um tipo de ruído aditivo que ocorre em imagens digitais devido à limitação da resolução do sistema de aquisição de imagens.
– Granulação de filme: é um tipo de ruído aditivo que ocorre em imagens capturadas em filmes fotográficos. É causado pela variação aleatória na densidade de grãos de prata no filme.
– Ruído isotrópico: é um tipo de ruído aditivo que ocorre em imagens digitais devido à variação aleatória na intensidade dos pixels. – Ruído multiplicativo: é um tipo de ruído que ocorre em imagens capturadas por sistemas de radar ou ultrassom. É causado pela reflexão aleatória das ondas sonoras ou eletromagnéticas.
– Ruído periódico: é um tipo de ruído que ocorre em imagens digitais devido à interferência de sinais periódicos, como linhas de energia elétrica ou sinais de televisão.
Filtro de média: é uma técnica de filtragem simples que substitui cada pixel na imagem pela média dos pixels em sua vizinhança. É eficaz para remover ruído gaussiano e ruído de quantização.
Filtro de mediana: é uma técnica de filtragem que substitui cada pixel na imagem pela mediana dos pixels em sua vizinhança. É eficaz para remover ruído impulsivo, como ruído sal e pimenta.
– Filtro de Wiener: é uma técnica de filtragem que usa uma estimativa da densidade espectral de potência do sinal de imagem e do ruído para remover o ruído. É eficaz para remover ruído gaussiano.
Filtro de Kalman: é uma técnica de filtragem que usa um modelo estatístico para estimar o sinal de imagem original a partir do sinal degradado. É eficaz para remover ruído gaussiano e ruído de amplificador.
– Filtro de Anisotrópico: é uma técnica de filtragem que usa uma equação diferencial parcial para remover o ruído enquanto preserva as bordas da imagem. É eficaz para remover ruído gaussiano e ruído de amplificador.
– Filtro de média: – Vantagens: é uma técnica de filtragem simples e fácil de implementar. É eficaz para remover ruído gaussiano e ruído de quantização. – Desvantagens: pode suavizar demais as bordas da imagem e reduzir a nitidez da imagem.
– Filtro de mediana: – Vantagens: é uma técnica de filtragem robusta que é eficaz para remover ruído impulsivo, como ruído sal e pimenta. Preserva as bordas da imagem. – Desvantagens: pode introduzir artefatos na imagem, como halos ao redor das bordas.
– Filtro de Wiener: – Vantagens: é uma técnica de filtragem que usa uma estimativa da densidade espectral de potência do sinal de imagem e do ruído para remover o ruído. É eficaz para remover ruído gaussiano. – Desvantagens: pode introduzir artefatos na imagem, como bordas borradas.
– Filtro de Kalman: – Vantagens: é uma técnica de filtragem que usa um modelo estatístico para estimar o sinal de imagem original a partir do sinal degradado. É eficaz para remover ruído gaussiano e ruído de amplificador. – Desvantagens: é computacionalmente intensivo e pode ser sensível a erros no modelo estatístico.
– Filtro de Anisotrópico: – Vantagens: é uma técnica de filtragem que usa uma equação diferencial parcial para remover o ruído enquanto preserva as bordas da imagem. É eficaz para remover ruído gaussiano e ruído de amplificador. – Desvantagens: é computacionalmente intensivo e pode introduzir artefatos na imagem, como bordas serrilhadas.
Filtro Inverso: Busca compensar ou inverter os efeitos de um sistema, sendo usado em processamento de sinal para melhorar a qualidade. Filtro Pseudo-Inverso: Similar ao inverso, mas aplicado em situações em que a matriz não é diretamente inversível. Usa técnicas alternativas para obter uma solução aproximada.
Filtro de Salsicha: Geralmente referido como filtro passa-baixa, atenua as frequências mais altas em um sinal, destacando as mais baixas. Filtro de Mínimos Quadrados Restrito: Utilizado para ajustar um modelo aos dados minimizando a soma dos quadrados das diferenças entre os valores previstos e observados, com restrições adicionais.
Filtro Máximo: Maximiza uma determinada característica, sendo aplicado em diversos contextos, como processamento de imagem e comunicações.
Filtro Mínimo: Minimiza uma característica específica, frequentemente usado em problemas de otimização. Filtro Mediano: Substitui cada pixel em uma imagem pela mediana dos valores dos pixels vizinhos, sendo eficaz para remover ruídos.
Filtro Médio: Calcula a média dos valores em uma região específica, útil para suavizar imagens ou sinais.
Filtro Adaptativo: Ajusta seus parâmetros automaticamente em resposta às características do sinal ou ambiente, proporcionando flexibilidade em várias condições.
Filtro Inverso: Vantagens: Pode oferecer uma compensação precisa. Desvantagens: Sensível a ruídos, instabilidades numéricas.
Filtro Pseudo-Inverso: Vantagens: Útil quando a matriz não é inversível. Desvantagens: A solução é aproximada, não ideal para todos os casos. Filtro de Salsicha: Vantagens: Remove ruídos de alta frequência. Desvantagens: Pode causar suavização excessiva e perda de detalhes.
Filtro de Mínimos Quadrados Restrito: Vantagens: Lida com restrições específicas. Desvantagens: Pode ser sensível a condições iniciais, computacionalmente exigente.
Filtro Máximo: Vantagens: Destaca características específicas. Desvantagens: Pode realçar ruídos indesejados.
Filtro Mínimo: Vantagens: Útil para remoção de ruídos. Desvantagens: Suaviza detalhes importantes.
Filtro Mediano: Vantagens: Eficaz na remoção de ruídos impulsivos. Desvantagens: Pode não ser tão eficaz para outros tipos de ruídos.
Filtro Médio: Vantagens: Suaviza sinais preservando tendências. Desvantagens: Pode não funcionar bem com outliers.
Filtro Adaptativo: Vantagens: Ajusta-se automaticamente a mudanças nas condições. Desvantagens: Complexidade computacional, sensibilidade a condições extremas.
——————————————————————————————————————————————————————————————-
LIMIARIZAÇÃO=
% Carregar a imagem
f = imread(‘football.jpg’); % Substitua ‘football.jpg’ pelo nome da sua imagem
% Converter para escala de cinza
grayImage = rgb2gray(f);
% Definir o limiar
threshold = 0.5; % Pode ser um valor entre 0 e 1, ou um valor específico para imagens em 8 bits (0 a 255)
% Limiarizar a imagem
binaryImage = imbinarize(grayImage, threshold);
% Exibir as imagens
figure;
subplot(1, 2, 1);
imshow(grayImage);
title(‘Imagem em Escala de Cinza’);
subplot(1, 2, 2);
imshow(binaryImage);
title(‘Imagem Limiarizada’);
————————————————————————————————–
ESCALA DE CINZA – BINARIZAÇÃO
f=rgb2gray(imread(‘peppers.png’));
bw=im2bw(f,0.5);
imshow(bw)
m=127;
E=20;
g=1./(1+(m./(double(f)+ eps)).^E)
subplot(1,2,1);imshow(f);subplot(1,2,2);imshow(g);
——————————————————————————————-
AJUSTE DE CONTRASTE
f=rgb2gray(imread(‘peppers.png’));
bw=im2bw(f,0.5);
imshow(bw)
g1= imadjust(f,[0 1],[1 0],0.6);
g2= imadjust(f,[0 1],[1 0],1);
g3= imadjust(f,[0 1],[1 0 ],4);
subplot(1,3,1)
imshow(g1)
subplot(1,3,2)
imshow(g2)
subplot(1,3,3)
imshow(g3)
————————————————————————————————-
imread(‘peppers.png’);
g1= imadjust(f,[0 1],[1 0],0.6);
g2= imadjust(f,[0 1],[1 0],1);
g3= imadjust(f,[0 1],[1 0],4);
subplot(1,3,1)
imshow(g1)
subplot(1,3,2)
imshow(g2)
subplot(1,3,3)
imshow(g3)
——————————————————————————————————————
i=imread(‘peppers.png’);
g=rgb2gray(i);
s=im2uint8(mat2gray(log(1+double(g))));
subplot(1,3,1);imshow(i);subplot(1,3,2);imshow(g);
subplot(1,3,3);imshow(s);
——————————————————————————————————————
f=rgb2gray(imread(‘peppers.png’));
[P, Q]=size(f);
F=fft2(f, 2*P, 2*Q); F=abs(F) ;Fc=fftshift(F);
subplot(1,3,1);imshow(f);subplot(1,3,2);imshow(Fc,[]);
s=im2uint8(mat2gray(log( 1 + double(Fc))));
subplot(1,3,3); imshow(s,[]);
——————————————————————————————————————
fruido=rgb2gray(imread( "boy-6281260_640.jpg"));
w2= (1/64)*ones(8);
g2=im2uint8(mat2gray(imfilter(double(fruido),w2)));
subplot(1,2,1);imshow(fruido);subplot(1,2,2);imshow(g2);
——————————————————————————————————————
A=imread("boy-6281260_640.jpg");
subplot(1,2,1); imshow (A);
k= fspecial(‘average’, [9 9]);
B=imfilter(A, k,"symmetric");
subplot(1,2,2); imshow(B);
————————————————————————————————-
I=rgb2gray(imread(‘boy-6281260_640.jpg’));
subplot(1,3,1), imshow(I);
Isp = imnoise (I, ‘salt & pepper’, 0.03);
subplot(1,3,2), imshow(Isp);
Ig = imnoise (I,’gaussian’, 0.02);
subplot(1,3,3), imshow(Ig);
————————————————————————————————–
I=rgb2gray(imread(‘boy-6281260_640.jpg’));
subplot(1,3,1), imshow(I);
Isp = imnoise (I, ‘salt & pepper’, 0.03);
subplot(1,3,2), imshow(Isp);
Ig = imnoise (I,’gaussian’, 0.02);
subplot(1,3,3), imshow(Ig);
K=ones (3,3)/9;
I_m = imfilter(I,k);
Isp_m = imfilter(Isp,k);
Ig_m = imfilter(Ig,k);
subplot(1,3,1), imshow(I_m);
subplot(1,3,2), imshow(Isp_m);
subplot(1,3,3), imshow(Ig_m);
%%
I_m = medfilt2(I,[3 3]);
Isp_m = medfilt2(Isp,[3 3]);
Ig_m = medfilt2(Ig, [3 3]);
subplot(1,3,1), imshow(I_m);
subplot(1,3,2), imshow(Isp_m);
subplot(1,3,3), imshow(Ig_m);
%%
I_m = ordfilt2(I,25,ones(5,5));
Isp_m = ordfilt2(Isp,25,ones(5,5));
Ig_m = ordfilt2(Ig,25,ones(5,5));
subplot(1,3,1), imshow(I_m);
subplot(1,3,2), imshow(Isp_m);
subplot(1,3,3), imshow(Ig_m);
——————————————————-
Guide —
function varargout = EstudandoThomas(varargin)
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @EstudandoThomas_OpeningFcn, …
‘gui_OutputFcn’, @EstudandoThomas_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code – DO NOT EDIT
% — Executes just before EstudandoThomas is made visible.
function EstudandoThomas_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% — Outputs from this function are returned to the command line.
function varargout = EstudandoThomas_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
% — Executes on button press in Abrir.
function Abrir_Callback(hObject, eventdata, handles)
global im1
[filename,path]=uigetfile(‘*.jpg;*.gif;*.tif;*.png’,’Selecione Imagem’);
im1=imread(strcat(path,filename));
axes(handles.axes1);
imshow(im1);
% — Executes on button press in Cinza.
function Cinza_Callback(hObject, eventdata, handles)
global im1 gray
gray=rgb2gray(im1);
axes(handles.axes2);
imshow(gray);
% — Executes on button press in Histograma.
function Histograma_Callback(hObject, eventdata, handles)
global gray
axes(handles.axes4);
imhist(gray);
% — Executes on button press in Equalizar.
function Equalizar_Callback(hObject, eventdata, handles)
global gray
axes(handles.axes5);
eq=histeq(gray);
imhist(eq);
% — Executes on button press in Salvar.
function Salvar_Callback(hObject, eventdata, handles)
F=getimage(handles.axes3);
FileName=uiputfile({‘*.jpg;*.tif;*.png;*.gif’,’All Image Files’;…
‘*.*’,’All Files’ },’Save Image’,…
‘C:Worknewfile.jpg’)
imwrite(F,FileName,’jpg’);
% — Executes on button press in Reset.
function Reset_Callback(hObject, eventdata, handles)
cla(handles.axes1,’reset’);
cla(handles.axes2,’reset’);
cla(handles.axes3,’reset’);
cla(handles.axes4,’reset’);
cla(handles.axes5,’reset’);
% — Executes on button press in Media.
function Media_Callback(hObject, eventdata, handles)
global gray n
axes(handles.axes3);
w1=(1/(n^2))*ones(n);
g1=im2uint8(mat2gray(imfilter(double(gray),w1)));
imshow(g1);
% — Executes on button press in Mediana.
function Mediana_Callback(hObject, eventdata, handles)
global gray n
axes(handles.axes3);
posicao=double((n^2-1)/2)+1;
g2=ordfilt2(gray,posicao,true(n));
imshow(g2);
% — Executes on button press in Maximo.
function Maximo_Callback(hObject, eventdata, handles)
global gray n
axes(handles.axes3);
g2=ordfilt2(gray,n*n,true(n));
imshow(g2);
% — Executes on button press in Minimo.
function Minimo_Callback(hObject, eventdata, handles)
global gray n
axes(handles.axes3);
g2=ordfilt2(gray,1,true(n));
imshow(g2);
function Matriz_Callback(hObject, eventdata, handles)
global n
str=get(handles.Matriz,’String’);
n=str2double(str);
% — Executes during object creation, after setting all properties.
function Matriz_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end
% — Executes on button press in Binario.
function Binario_Callback(hObject, eventdata, handles)
global gray
binario=im2bw(gray);
axes(handles.axes3);
imshow(binario)
% — Executes on button press in Negativo.
function Negativo_Callback(hObject, eventdata, handles)
global gray
neg = imadjust(gray, [0 1], [1 0],1);
axes(handles.axes3);
imshow(neg); -Ruído gaussiano: é um tipo de ruído aditivo que segue uma distribuição normal. É comum em imagens capturadas com sensores eletrônicos, como câmeras digitais.
-Ruído sal e pimenta: é um tipo de ruído impulsivo que adiciona pixels brancos ou pretos aleatoriamente na imagem. É comum em imagens capturadas em ambientes com baixa iluminação ou em transmissões de imagens.
– Ruído de Poisson: é um tipo de ruído que ocorre em imagens com baixa intensidade de luz, como imagens médicas ou astronômicas. É causado pela natureza probabilística da captura de fótons.
– Ruído de amplificador: é um tipo de ruído aditivo que ocorre em imagens capturadas com amplificadores eletrônicos, como em câmeras digitais.
– Ruído de tiro: é um tipo de ruído aditivo que ocorre em imagens capturadas com sensores eletrônicos, como câmeras digitais. É causado pela variação aleatória na quantidade de elétrons gerados pelos fotossensores.
– Ruído de quantização: é um tipo de ruído aditivo que ocorre em imagens digitais devido à limitação da resolução do sistema de aquisição de imagens.
– Granulação de filme: é um tipo de ruído aditivo que ocorre em imagens capturadas em filmes fotográficos. É causado pela variação aleatória na densidade de grãos de prata no filme.
– Ruído isotrópico: é um tipo de ruído aditivo que ocorre em imagens digitais devido à variação aleatória na intensidade dos pixels. – Ruído multiplicativo: é um tipo de ruído que ocorre em imagens capturadas por sistemas de radar ou ultrassom. É causado pela reflexão aleatória das ondas sonoras ou eletromagnéticas.
– Ruído periódico: é um tipo de ruído que ocorre em imagens digitais devido à interferência de sinais periódicos, como linhas de energia elétrica ou sinais de televisão.
Filtro de média: é uma técnica de filtragem simples que substitui cada pixel na imagem pela média dos pixels em sua vizinhança. É eficaz para remover ruído gaussiano e ruído de quantização.
Filtro de mediana: é uma técnica de filtragem que substitui cada pixel na imagem pela mediana dos pixels em sua vizinhança. É eficaz para remover ruído impulsivo, como ruído sal e pimenta.
– Filtro de Wiener: é uma técnica de filtragem que usa uma estimativa da densidade espectral de potência do sinal de imagem e do ruído para remover o ruído. É eficaz para remover ruído gaussiano.
Filtro de Kalman: é uma técnica de filtragem que usa um modelo estatístico para estimar o sinal de imagem original a partir do sinal degradado. É eficaz para remover ruído gaussiano e ruído de amplificador.
– Filtro de Anisotrópico: é uma técnica de filtragem que usa uma equação diferencial parcial para remover o ruído enquanto preserva as bordas da imagem. É eficaz para remover ruído gaussiano e ruído de amplificador.
– Filtro de média: – Vantagens: é uma técnica de filtragem simples e fácil de implementar. É eficaz para remover ruído gaussiano e ruído de quantização. – Desvantagens: pode suavizar demais as bordas da imagem e reduzir a nitidez da imagem.
– Filtro de mediana: – Vantagens: é uma técnica de filtragem robusta que é eficaz para remover ruído impulsivo, como ruído sal e pimenta. Preserva as bordas da imagem. – Desvantagens: pode introduzir artefatos na imagem, como halos ao redor das bordas.
– Filtro de Wiener: – Vantagens: é uma técnica de filtragem que usa uma estimativa da densidade espectral de potência do sinal de imagem e do ruído para remover o ruído. É eficaz para remover ruído gaussiano. – Desvantagens: pode introduzir artefatos na imagem, como bordas borradas.
– Filtro de Kalman: – Vantagens: é uma técnica de filtragem que usa um modelo estatístico para estimar o sinal de imagem original a partir do sinal degradado. É eficaz para remover ruído gaussiano e ruído de amplificador. – Desvantagens: é computacionalmente intensivo e pode ser sensível a erros no modelo estatístico.
– Filtro de Anisotrópico: – Vantagens: é uma técnica de filtragem que usa uma equação diferencial parcial para remover o ruído enquanto preserva as bordas da imagem. É eficaz para remover ruído gaussiano e ruído de amplificador. – Desvantagens: é computacionalmente intensivo e pode introduzir artefatos na imagem, como bordas serrilhadas.
Filtro Inverso: Busca compensar ou inverter os efeitos de um sistema, sendo usado em processamento de sinal para melhorar a qualidade. Filtro Pseudo-Inverso: Similar ao inverso, mas aplicado em situações em que a matriz não é diretamente inversível. Usa técnicas alternativas para obter uma solução aproximada.
Filtro de Salsicha: Geralmente referido como filtro passa-baixa, atenua as frequências mais altas em um sinal, destacando as mais baixas. Filtro de Mínimos Quadrados Restrito: Utilizado para ajustar um modelo aos dados minimizando a soma dos quadrados das diferenças entre os valores previstos e observados, com restrições adicionais.
Filtro Máximo: Maximiza uma determinada característica, sendo aplicado em diversos contextos, como processamento de imagem e comunicações.
Filtro Mínimo: Minimiza uma característica específica, frequentemente usado em problemas de otimização. Filtro Mediano: Substitui cada pixel em uma imagem pela mediana dos valores dos pixels vizinhos, sendo eficaz para remover ruídos.
Filtro Médio: Calcula a média dos valores em uma região específica, útil para suavizar imagens ou sinais.
Filtro Adaptativo: Ajusta seus parâmetros automaticamente em resposta às características do sinal ou ambiente, proporcionando flexibilidade em várias condições.
Filtro Inverso: Vantagens: Pode oferecer uma compensação precisa. Desvantagens: Sensível a ruídos, instabilidades numéricas.
Filtro Pseudo-Inverso: Vantagens: Útil quando a matriz não é inversível. Desvantagens: A solução é aproximada, não ideal para todos os casos. Filtro de Salsicha: Vantagens: Remove ruídos de alta frequência. Desvantagens: Pode causar suavização excessiva e perda de detalhes.
Filtro de Mínimos Quadrados Restrito: Vantagens: Lida com restrições específicas. Desvantagens: Pode ser sensível a condições iniciais, computacionalmente exigente.
Filtro Máximo: Vantagens: Destaca características específicas. Desvantagens: Pode realçar ruídos indesejados.
Filtro Mínimo: Vantagens: Útil para remoção de ruídos. Desvantagens: Suaviza detalhes importantes.
Filtro Mediano: Vantagens: Eficaz na remoção de ruídos impulsivos. Desvantagens: Pode não ser tão eficaz para outros tipos de ruídos.
Filtro Médio: Vantagens: Suaviza sinais preservando tendências. Desvantagens: Pode não funcionar bem com outliers.
Filtro Adaptativo: Vantagens: Ajusta-se automaticamente a mudanças nas condições. Desvantagens: Complexidade computacional, sensibilidade a condições extremas.
——————————————————————————————————————————————————————————————-
LIMIARIZAÇÃO=
% Carregar a imagem
f = imread(‘football.jpg’); % Substitua ‘football.jpg’ pelo nome da sua imagem
% Converter para escala de cinza
grayImage = rgb2gray(f);
% Definir o limiar
threshold = 0.5; % Pode ser um valor entre 0 e 1, ou um valor específico para imagens em 8 bits (0 a 255)
% Limiarizar a imagem
binaryImage = imbinarize(grayImage, threshold);
% Exibir as imagens
figure;
subplot(1, 2, 1);
imshow(grayImage);
title(‘Imagem em Escala de Cinza’);
subplot(1, 2, 2);
imshow(binaryImage);
title(‘Imagem Limiarizada’);
————————————————————————————————–
ESCALA DE CINZA – BINARIZAÇÃO
f=rgb2gray(imread(‘peppers.png’));
bw=im2bw(f,0.5);
imshow(bw)
m=127;
E=20;
g=1./(1+(m./(double(f)+ eps)).^E)
subplot(1,2,1);imshow(f);subplot(1,2,2);imshow(g);
——————————————————————————————-
AJUSTE DE CONTRASTE
f=rgb2gray(imread(‘peppers.png’));
bw=im2bw(f,0.5);
imshow(bw)
g1= imadjust(f,[0 1],[1 0],0.6);
g2= imadjust(f,[0 1],[1 0],1);
g3= imadjust(f,[0 1],[1 0 ],4);
subplot(1,3,1)
imshow(g1)
subplot(1,3,2)
imshow(g2)
subplot(1,3,3)
imshow(g3)
————————————————————————————————-
imread(‘peppers.png’);
g1= imadjust(f,[0 1],[1 0],0.6);
g2= imadjust(f,[0 1],[1 0],1);
g3= imadjust(f,[0 1],[1 0],4);
subplot(1,3,1)
imshow(g1)
subplot(1,3,2)
imshow(g2)
subplot(1,3,3)
imshow(g3)
——————————————————————————————————————
i=imread(‘peppers.png’);
g=rgb2gray(i);
s=im2uint8(mat2gray(log(1+double(g))));
subplot(1,3,1);imshow(i);subplot(1,3,2);imshow(g);
subplot(1,3,3);imshow(s);
——————————————————————————————————————
f=rgb2gray(imread(‘peppers.png’));
[P, Q]=size(f);
F=fft2(f, 2*P, 2*Q); F=abs(F) ;Fc=fftshift(F);
subplot(1,3,1);imshow(f);subplot(1,3,2);imshow(Fc,[]);
s=im2uint8(mat2gray(log( 1 + double(Fc))));
subplot(1,3,3); imshow(s,[]);
——————————————————————————————————————
fruido=rgb2gray(imread( "boy-6281260_640.jpg"));
w2= (1/64)*ones(8);
g2=im2uint8(mat2gray(imfilter(double(fruido),w2)));
subplot(1,2,1);imshow(fruido);subplot(1,2,2);imshow(g2);
——————————————————————————————————————
A=imread("boy-6281260_640.jpg");
subplot(1,2,1); imshow (A);
k= fspecial(‘average’, [9 9]);
B=imfilter(A, k,"symmetric");
subplot(1,2,2); imshow(B);
————————————————————————————————-
I=rgb2gray(imread(‘boy-6281260_640.jpg’));
subplot(1,3,1), imshow(I);
Isp = imnoise (I, ‘salt & pepper’, 0.03);
subplot(1,3,2), imshow(Isp);
Ig = imnoise (I,’gaussian’, 0.02);
subplot(1,3,3), imshow(Ig);
————————————————————————————————–
I=rgb2gray(imread(‘boy-6281260_640.jpg’));
subplot(1,3,1), imshow(I);
Isp = imnoise (I, ‘salt & pepper’, 0.03);
subplot(1,3,2), imshow(Isp);
Ig = imnoise (I,’gaussian’, 0.02);
subplot(1,3,3), imshow(Ig);
K=ones (3,3)/9;
I_m = imfilter(I,k);
Isp_m = imfilter(Isp,k);
Ig_m = imfilter(Ig,k);
subplot(1,3,1), imshow(I_m);
subplot(1,3,2), imshow(Isp_m);
subplot(1,3,3), imshow(Ig_m);
%%
I_m = medfilt2(I,[3 3]);
Isp_m = medfilt2(Isp,[3 3]);
Ig_m = medfilt2(Ig, [3 3]);
subplot(1,3,1), imshow(I_m);
subplot(1,3,2), imshow(Isp_m);
subplot(1,3,3), imshow(Ig_m);
%%
I_m = ordfilt2(I,25,ones(5,5));
Isp_m = ordfilt2(Isp,25,ones(5,5));
Ig_m = ordfilt2(Ig,25,ones(5,5));
subplot(1,3,1), imshow(I_m);
subplot(1,3,2), imshow(Isp_m);
subplot(1,3,3), imshow(Ig_m);
——————————————————-
Guide —
function varargout = EstudandoThomas(varargin)
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @EstudandoThomas_OpeningFcn, …
‘gui_OutputFcn’, @EstudandoThomas_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code – DO NOT EDIT
% — Executes just before EstudandoThomas is made visible.
function EstudandoThomas_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% — Outputs from this function are returned to the command line.
function varargout = EstudandoThomas_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
% — Executes on button press in Abrir.
function Abrir_Callback(hObject, eventdata, handles)
global im1
[filename,path]=uigetfile(‘*.jpg;*.gif;*.tif;*.png’,’Selecione Imagem’);
im1=imread(strcat(path,filename));
axes(handles.axes1);
imshow(im1);
% — Executes on button press in Cinza.
function Cinza_Callback(hObject, eventdata, handles)
global im1 gray
gray=rgb2gray(im1);
axes(handles.axes2);
imshow(gray);
% — Executes on button press in Histograma.
function Histograma_Callback(hObject, eventdata, handles)
global gray
axes(handles.axes4);
imhist(gray);
% — Executes on button press in Equalizar.
function Equalizar_Callback(hObject, eventdata, handles)
global gray
axes(handles.axes5);
eq=histeq(gray);
imhist(eq);
% — Executes on button press in Salvar.
function Salvar_Callback(hObject, eventdata, handles)
F=getimage(handles.axes3);
FileName=uiputfile({‘*.jpg;*.tif;*.png;*.gif’,’All Image Files’;…
‘*.*’,’All Files’ },’Save Image’,…
‘C:Worknewfile.jpg’)
imwrite(F,FileName,’jpg’);
% — Executes on button press in Reset.
function Reset_Callback(hObject, eventdata, handles)
cla(handles.axes1,’reset’);
cla(handles.axes2,’reset’);
cla(handles.axes3,’reset’);
cla(handles.axes4,’reset’);
cla(handles.axes5,’reset’);
% — Executes on button press in Media.
function Media_Callback(hObject, eventdata, handles)
global gray n
axes(handles.axes3);
w1=(1/(n^2))*ones(n);
g1=im2uint8(mat2gray(imfilter(double(gray),w1)));
imshow(g1);
% — Executes on button press in Mediana.
function Mediana_Callback(hObject, eventdata, handles)
global gray n
axes(handles.axes3);
posicao=double((n^2-1)/2)+1;
g2=ordfilt2(gray,posicao,true(n));
imshow(g2);
% — Executes on button press in Maximo.
function Maximo_Callback(hObject, eventdata, handles)
global gray n
axes(handles.axes3);
g2=ordfilt2(gray,n*n,true(n));
imshow(g2);
% — Executes on button press in Minimo.
function Minimo_Callback(hObject, eventdata, handles)
global gray n
axes(handles.axes3);
g2=ordfilt2(gray,1,true(n));
imshow(g2);
function Matriz_Callback(hObject, eventdata, handles)
global n
str=get(handles.Matriz,’String’);
n=str2double(str);
% — Executes during object creation, after setting all properties.
function Matriz_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end
% — Executes on button press in Binario.
function Binario_Callback(hObject, eventdata, handles)
global gray
binario=im2bw(gray);
axes(handles.axes3);
imshow(binario)
% — Executes on button press in Negativo.
function Negativo_Callback(hObject, eventdata, handles)
global gray
neg = imadjust(gray, [0 1], [1 0],1);
axes(handles.axes3);
imshow(neg); filter, ruids MATLAB Answers — New Questions