Sem categoria
Trabalho de Processamento de Sinais

Link do trabalho:

https://github.com/raphaelPinheiro26/Processamento-de-Sinais-e-Imagens—Fatec-RP/blob/main/Processamento_de_Imagem.ipynb

Aluno: Marcelo Maurin Martins

Número FATEC: 2840612223009

e-mail:marcelo.martins34@fatec.sp.gov.br

Base do Codigo

import numpy as np
import matplotlib.pyplot as plt
import os
import cv2
import numpy as np

from scipy.io import loadmat
from IPython.display import HTML
from base64 import b64encode
from matplotlib import pyplot as plt
import ipywidgets as widgets
from IPython.display import display

Exercício 1

# Carregar a imagem
image_path = 'xc.tif'  # Substitua pelo caminho da sua imagem
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)

# Verificar se a imagem foi carregada corretamente
if image is None:
    raise ValueError("A imagem não pôde ser carregada. Verifique o caminho fornecido.")

# Calcular o histograma
histogram = cv2.calcHist([image], [0], None, [256], [0, 256])

# Plotar o histograma
plt.figure()
plt.title("Histograma")
plt.xlabel("Intensidade")
plt.ylabel("Número de Pixels")
plt.plot(histogram)
plt.xlim([0, 256])
plt.show()

# Sliders para ajustar os valores de c e b
c_slider = widgets.FloatSlider(value=1.0, min=0.1, max=3.0, step=0.1, description='c')
b_slider = widgets.IntSlider(value=0, min=-100, max=100, step=1, description='b')
# Interagir com os sliders
widgets.interact(update_image, c=c_slider, b=b_slider)

Transformação de intensidades (Nota: 3.0/10.0)


# Carregar a imagem
image_path = 'xc.tif'  # Substitua pelo caminho da sua imagem
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)

# Verificar se a imagem foi carregada corretamente
if image is None:
    raise ValueError("A imagem não pôde ser carregada. Verifique o caminho fornecido.")

# Calcular o histograma
histogram = cv2.calcHist([image], [0], None, [256], [0, 256])

# Plotar o histograma
plt.figure()
plt.title("Histograma")
plt.xlabel("Intensidade")
plt.ylabel("Número de Pixels")
plt.plot(histogram)
plt.xlim([0, 256])
plt.show()

# Função para ajustar os valores de c e b e aplicar na imagem
def adjust_image(c, b):
    adjusted_image = cv2.convertScaleAbs(image, alpha=c, beta=b)
    plt.figure(figsize=(10, 5))
    plt.subplot(1, 2, 1)
    plt.title("Imagem Ajustada")
    plt.imshow(adjusted_image, cmap='gray')
    plt.axis('off')
    
    # Calcular o histograma da imagem ajustada
    adjusted_histogram = cv2.calcHist([adjusted_image], [0], None, [256], [0, 256])
    plt.subplot(1, 2, 2)
    plt.title("Histograma Ajustado")
    plt.xlabel("Intensidade")
    plt.ylabel("Número de Pixels")
    plt.plot(adjusted_histogram)
    plt.xlim([0, 256])
    plt.show()

# Sliders para ajustar os valores de c e b
c_slider = widgets.FloatSlider(value=1.0, min=0.1, max=3.0, step=0.1, description='c')
b_slider = widgets.IntSlider(value=0, min=-100, max=100, step=1, description='b')

# Interagir com os sliders
widgets.interact(adjust_image, c=c_slider, b=b_slider)

Exercicio 2.1

import numpy as np
import matplotlib.pyplot as plt
import cv2
import ipywidgets as widgets
from IPython.display import display

# Carregar a imagem
image_path = 'tomo.tif'  # Substitua pelo caminho da sua imagem
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)

# Verificar se a imagem foi carregada corretamente
if image is None:
    raise ValueError("A imagem não pôde ser carregada. Verifique o caminho fornecido.")

# Função para ajustar os valores de c e b e aplicar na imagem
def adjust_image(c, b):
    adjusted_image = cv2.convertScaleAbs(image, alpha=c, beta=b)
    plt.figure(figsize=(12, 6))
    
    plt.subplot(1, 3, 1)
    plt.title("Imagem Ajustada")
    plt.imshow(adjusted_image, cmap='gray')
    plt.axis('off')
    
    # Calcular o histograma da imagem ajustada
    adjusted_histogram = cv2.calcHist([adjusted_image], [0], None, [256], [0, 256])
    plt.subplot(1, 3, 2)
    plt.title("Histograma Ajustado")
    plt.xlabel("Intensidade")
    plt.ylabel("Número de Pixels")
    plt.plot(adjusted_histogram)
    plt.xlim([0, 256])
    
    # Aplicar efeito negativo
    negative_image = 255 - adjusted_image
    negative_histogram = cv2.calcHist([negative_image], [0], None, [256], [0, 256])
    plt.subplot(1, 3, 3)
    plt.title("Imagem Negativa")
    plt.imshow(negative_image, cmap='gray')
    plt.axis('off')
    
    plt.figure(figsize=(6, 4))
    plt.title("Histograma da Imagem Negativa")
    plt.xlabel("Intensidade")
    plt.ylabel("Número de Pixels")
    plt.plot(negative_histogram)
    plt.xlim([0, 256])
    
    plt.show()

# Sliders para ajustar os valores de c e b
c_slider = widgets.FloatSlider(value=1.0, min=0.1, max=3.0, step=0.1, description='c')
b_slider = widgets.IntSlider(value=0, min=-100, max=100, step=1, description='b')

# Interagir com os sliders
widgets.interact(adjust_image, c=c_slider, b=b_slider)

Exercicio 3 – Restauração da Imagem

# Função para ajustar brilho e contraste
def ajustar_brilho_contraste(imagem, alpha, beta):
    nova_imagem = cv2.convertScaleAbs(imagem, alpha=alpha, beta=beta)
    return nova_imagem

# Carregar a imagem
imagem = cv2.imread('xc.tif', cv2.IMREAD_GRAYSCALE)

# Ajuste de brilho e contraste
alpha = 0.002  # Contraste
beta = 0.002    # Brilho
imagem_ajustada = ajustar_brilho_contraste(imagem, alpha, beta)

# Plotar as imagens e os histogramas
fig, axs = plt.subplots(2, 2, figsize=(12, 8))

# Imagem original
axs[0, 0].imshow(imagem, cmap='gray')
axs[0, 0].set_title('Imagem Original')
axs[0, 0].axis('off')

# Histograma da imagem original
axs[0, 1].hist(imagem.ravel(), bins=256, range=(0, 256), color='gray')
axs[0, 1].set_title('Histograma Original')

# Imagem ajustada
axs[1, 0].imshow(imagem_ajustada, cmap='gray')
axs[1, 0].set_title('Imagem Ajustada')
axs[1, 0].axis('off')

# Histograma da imagem ajustada
axs[1, 1].hist(imagem_ajustada.ravel(), bins=256, range=(0, 256), color='gray')
axs[1, 1].set_title('Histograma Ajustado')

plt.tight_layout()
plt.show()
Sem categoria
Encomenda do Projeto 03: Indicadores de Gestão de Manutenção

Grupo

EAS 02 – Ambulatório

Valores:

Conjunto de dados para EAS da equipe 02: AMBULATÓRIO

▪ 𝐵𝑎𝑐𝑘𝑙𝑜𝑔 = 𝐻𝐻 𝑂𝑆 𝑃𝑙𝑎𝑛𝑒𝑗𝑎𝑑𝑎𝑠 = 32 𝐻𝐻 𝑂𝑆 𝑃𝑒𝑛𝑑𝑒𝑛𝑡𝑒𝑠 = 15 𝐻𝐻 𝑂𝑆 𝑃𝑟𝑜𝑔𝑟𝑎𝑚𝑎𝑑𝑎𝑠 = 16 𝐻𝐻 𝑂𝑆 𝐸𝑥𝑒𝑐𝑢𝑡𝑎𝑑𝑎𝑠 = 13

▪ Custo do EMH parado = R$ 1.200,00 por hora

▪ Hora Homem Total = 18 horas ▪ Fator de Produtividade = 0,42

▪ Custo Total de Manutenção = R$ 520.000,00

▪ Faturamento Bruto = R$ 2.300.000,00

▪ Custo Específico de Manutenção EMH = R$ 850,00

▪ Valor de Compra EMH Novo = 35.000,00

▪ 𝐷𝑎𝑑𝑜𝑠 𝑑𝑒 𝑀𝑎𝑛𝑢𝑡𝑒𝑛çã𝑜 = 07 𝑀𝐶 =914 𝑀𝑃 =706 𝑀𝑃𝑑 =234 𝐸𝑛𝑔.𝜀 𝑀𝑒𝑙ℎ𝑜𝑟𝑖𝑎𝑠 = 108

Data:

Início: 03.06.2024 • Fim: 17.06.2024 • Entrega: 24.06.2024 IMPRESSO & pdf

Escopo do Projeto:

Cada equipe (grupo de alunos) deve se colocar como um EAS de determinada atividade de saúde para a qual receberá um conjunto de dados numéricos qualitativos concernentes à atividade específica de cada EAS.

Com esses dados, cada equipe deverá cumprir a tarefa do projeto 02: exercitar o ferramental matemático que envolve os OITO principais indicadores de Gestão de Manutenção.

Cada Equipe deve elaborar um texto introdutório que justifique a relevância do projeto;

A tarefa compreende um documento de encaminhamento impresso para toda a tarefa da encomenda explicitada a seguir.

Justificativa do Trabalho

A gestão eficiente de serviços de saúde, especialmente em ambientes ambulatoriais de segunda linha (EAS2), exige uma abordagem sistemática na monitorização e análise de indicadores de desempenho. Esses indicadores são essenciais para assegurar a qualidade, eficiência e segurança no atendimento aos pacientes. A NBR 5462, que trata de confiabilidade e mantenabilidade, fornece uma estrutura valiosa para a gestão desses indicadores. A seguir, são apresentados os aspectos gerais que justificam a importância da manutenção de indicadores no contexto de EAS2 e em conformidade com a NBR 5462.

Conformidade com a NBR 5462

A NBR 5462 enfatiza a importância de se estabelecer uma abordagem estruturada para monitorar e analisar o desempenho dos sistemas e equipamentos. Isso inclui a implementação de práticas que garantam:

  1. Confiabilidade:
    • Garantir que os equipamentos médicos funcionem corretamente durante o tempo necessário é crucial para o atendimento eficaz aos pacientes. A confiabilidade dos equipamentos é um aspecto central para prevenir falhas inesperadas que possam comprometer os cuidados de saúde.
  2. Mantenabilidade:
    • Facilitar a manutenção dos equipamentos é essencial para minimizar o tempo de inatividade e garantir que eles estejam sempre prontos para uso. A manutenção adequada contribui para a longevidade dos equipamentos e a continuidade dos serviços de saúde.
  3. Planejamento e Controle:
    • O uso de indicadores permite um planejamento e controle mais precisos das atividades de manutenção. Isso ajuda a antecipar problemas, alocar recursos de maneira eficiente e implementar ações corretivas e preventivas com base em dados concretos.

Aplicação no Contexto de EAS2

Em um ambulatório de segunda linha, a manutenção de indicadores é fundamental para atender às necessidades específicas de um ambiente de saúde dinâmico e exigente:

  1. Qualidade do Atendimento ao Paciente:
    • Monitorar indicadores de desempenho garante que os pacientes recebam cuidados de alta qualidade sem interrupções. Indicadores ajudam a identificar rapidamente quaisquer problemas que possam afetar a qualidade do atendimento e permitem a implementação de soluções eficazes.
  2. Segurança do Paciente:
    • A segurança é uma prioridade máxima em qualquer ambiente de saúde. Manter um sistema robusto de indicadores permite a detecção precoce de falhas ou degradações no desempenho dos equipamentos, prevenindo incidentes que possam comprometer a segurança dos pacientes.
  3. Eficiência Operacional:
    • Indicadores bem geridos permitem otimizar o uso dos recursos do ambulatório. Isso inclui a gestão eficaz dos equipamentos médicos, garantindo que estejam disponíveis e operacionais quando necessários, e a redução de tempo de inatividade.
  4. Custo-Benefício:
    • Um sistema eficiente de monitorização de indicadores ajuda a identificar tendências de falhas e necessidades de manutenção antes que se tornem problemas maiores e mais caros. Isso resulta em uma gestão de custos mais eficaz, com menos despesas emergenciais e mais investimentos em manutenção preventiva.

Python

import matplotlib.pyplot as plt
# Dados fornecidos
backlog_hh_os_planejadas = 32
backlog_hh_os_pendentes = 15
backlog_hh_os_programadas = 16
backlog_hh_os_executadas = 13
custo_emh_parado = 1200  # h
hora_homem_total = 18  # horas
fator_produtividade = 0.42
custo_total_manutencao = 520000  # R$
faturamento_bruto = 2300000  # R$
custo_especifico_manutencao_emh = 850  # h
valor_compra_emh_novo = 35000  # h
mc = 914 #Manutenção corretiva
mp = 706 #Manutenção preventiva
mpd = 234 #Manutenção preditiva
eng_melhorias = 108

MTBF: Tempo médio entre falhas;

# Calculando o número de falhas
horas_operacao = mc + mp + mpd + eng_melhorias
print(f"Horas de Operacao Total:{horas_operacao}")

nprodutivo = (1-fator_produtividade) * horas_operacao
print(f"Horas não produtivas:{nprodutivo}")

# Calculando o MTBF
mtbf = horas_operacao / custo_especifico_manutencao_emh 

# Exibindo o valor do MTBF
print(f"O Tempo Médio Entre Falhas (MTBF) é: {mtbf:.2f} horas")

Resultado:

Horas de Operacao Total:1962
Horas não produtivas:1137.96
O Tempo Médio Entre Falhas (MTBF) é: 2.31 horas

MTTR: Tempo médio para reparo;

nrointervencoes = mc + mp+ mpd 
print(f"Nro de intervenções:{nrointervencoes}")

MTTR = backlog_hh_os_executadas / nrointervencoes
print(f"MTTR:{MTTR}")

Resultado:

Nro de intervenções:1854
MTTR:0.007011866235167206

Disponibilidade

disponibilidade = mtbf / (MTTR + mtbf)
print(f"disponibilidade:{disponibilidade}")
disponibilidade:0.9969714394405742

Confiabilidade:


# Calculando a taxa de falhas (lambda)
taxa_falhas = 1 / mtbf

# Definindo o tempo para o qual queremos calcular a confiabilidade (em horas)
t = 100

# Calculando a confiabilidade
confiabilidade = math.exp(-taxa_falhas * t)

# Exibindo os resultados
print(f"O Tempo Médio Entre Falhas (MTBF) é: {mtbf:.2f} horas")
print(f"A Confiabilidade do sistema após {t} horas é: {confiabilidade:.4f}")
O Tempo Médio Entre Falhas (MTBF) é: 2.31 horas
A Confiabilidade do sistema após 100 horas é: 0.0000

Backlog

HHCarteira = backlog_hh_os_planejadas +backlog_hh_os_pendentes + backlog_hh_os_programadas +backlog_hh_os_executadas 
print(f"HHCarteira:{HHCarteira}")
Backlog = (HHCarteira / (hora_homem_total * fator_produtividade)) * 100
print(f"Backlog:{Backlog}")
HHCarteira:76
Backlog:1005.2910052910054

Calculando o CMF (Custo de Manutenção sobre Faturamento)

cmf = custo_total_manutencao / faturamento_bruto
print(f"cmf:{cmf}")
cmf:0.22608695652173913

Calculando o CPMV (Custo de Manutenção sobre Valor de Reposição)

cpmv = custo_total_manutencao / valor_compra_emh_novo
print(f"cpmv:{cpmv}")
cpmv:14.857142857142858

Distribuição por tipos de manutenção


# Calculando a distribuição por tipos de manutenção
total_manutencao = mc + mp + mpd + eng_melhorias
percentual_mc = (mc / total_manutencao) * 100
percentual_mp = (mp / total_manutencao) * 100
percentual_mpd = (mpd / total_manutencao) * 100
percentual_eng_melhorias = (eng_melhorias / total_manutencao) * 100


# Dados para o gráfico de pizza
labels = ['Manutenção Corretiva', 'Manutenção Preventiva', 'Manutenção Preditiva', 'Melhorias de Engenharia']
sizes = [percentual_mc, percentual_mp, percentual_mpd, percentual_eng_melhorias]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0.1, 0, 0, 0)  # Destacar o primeiro segmento

# Plotando o gráfico de pizza
plt.figure(figsize=(8, 8))
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)
plt.axis('equal')  # Assegura que o gráfico de pizza seja desenhado como um círculo
plt.title('Distribuição por Tipos de Manutenção')
plt.show()

Sem categoria
Exercício processamento de Sinais

Circuit Calculations

a) Equação de Vo

Para encontrar a equação de Vo em função das tensões de entrada Va, Vb, Vc, Vd, aplicamos a superposição das contribuições de cada tensão de entrada no amplificador operacional. A equação geral para um somador inversor é dada por:

Vo = – ( (Rf/Ra) Va + (Rf/Rb) Vb + (Rf/Rc) Vc + (Rf/Rd) Vd )

Dado:

  • Rf = 300 kΩ
  • Rs = 20 kΩ
  • Ra = 40 kΩ
  • Rb = 10 kΩ
  • Rc = 20 kΩ
  • Rd = 40 kΩ

Podemos escrever a equação de Vo como:

Vo = – ( (300 kΩ/40 kΩ) Va + (300 kΩ/10 kΩ) Vb + (300 kΩ/20 kΩ) Vc + (300 kΩ/40 kΩ) Vd )

Vo = – ( 7.5 Va + 30 Vb + 15 Vc + 7.5 Vd )

b) Valor de Vo para Va = 2V, Vb = 2V, Vc = 3V, Vd = -4V

Substituindo os valores na equação encontrada:

Vo = – ( 7.5 * 2 + 30 * 2 + 15 * 3 + 7.5 * (-4) )

Vo = – ( 15 + 60 + 45 – 30 )

Vo = – ( 90 )

Vo = -90V

c) Valor de Vo para Va = -4V, Vb = 3V, Vc = 5V, Vd = -6V

Substituindo os valores na equação encontrada:

Vo = – ( 7.5 * (-4) + 30 * 3 + 15 * 5 + 7.5 * (-6) )

Vo = – ( -30 + 90 + 75 – 45 )

Vo = – ( 90 )

Vo = -90V

d) Valor de Vo para Va = -3V, Vb = 4V, Vc = -2V, Vd = 7V

Substituindo os valores na equação encontrada:

Vo = – ( 7.5 * (-3) + 30 * 4 + 15 * (-2) + 7.5 * 7 )

Vo = – ( -22.5 + 120 – 30 + 52.5 )

Vo = – ( 120 )

Vo = -120V

e) Limites de variação de Vb para que a saída Vo não sature, considerando Va = -4V, Vc = 5V e Vd = -6V

Para que Vo não sature, precisamos garantir que Vo fique dentro da faixa de alimentação do amplificador operacional, que geralmente é de ±15V.

Substituindo Va, Vc e Vd na equação e isolando Vb:

Vo = – ( 7.5 * (-4) + 30 * Vb + 15 * 5 + 7.5 * (-6) )

Simplificando:

Vo = – ( -30 + 30 Vb + 75 – 45 )

Vo = – ( 30 Vb )

Como Vo deve estar entre -15V e +15V:

-15V ≤ – ( 30 Vb ) ≤ 15V

-15V ≤ – 30 Vb ≤ 15V

– (15V/30) ≤ Vb ≤ (15V/30)

-0.5V ≤ Vb ≤ 0.5V

Então, Vb deve variar entre -0.5V e 0.5V para que a saída Vo não sature.

Exercício 2

a) Equação de Vo

Para encontrar a equação de Vo considerando Rf = 10,0 kΩ e Rs = 4,0 kΩ, usamos a fórmula do amplificador inversor:

Vo = – ( (Rf/Rs) Vs )

Dado:

  • Rf = 10,0 kΩ
  • Rs = 4,0 kΩ

Portanto, a equação de Vo é:

Vo = – ( 10,0 kΩ / 4,0 kΩ ) Vs

Vo = – ( 2.5 Vs )

b) Valor de Vo para Vs = 2V

Substituindo Vs = 2V na equação encontrada:

Vo = – ( 2.5 * 2 )

Vo = – 5V

c) Valor de Vo para Vs = 5V

Substituindo Vs = 5V na equação encontrada:

Vo = – ( 2.5 * 5 )

Vo = – 12.5V

d) Valor de Vo para Vs = 8V

Substituindo Vs = 8V na equação encontrada:

Vo = – ( 2.5 * 8 )

Vo = – 20V

e) Limites de variação de Vs para que a saída Vo não sature

Para que Vo não sature, precisamos garantir que Vo fique dentro da faixa de alimentação do amplificador operacional, que geralmente é de ±15V.

Usando a equação Vo = -2.5 Vs:

-15V ≤ -2.5 Vs ≤ 15V

Dividindo todos os termos por -2.5 (e invertendo a desigualdade):

6V ≥ Vs ≥ -6V

Então, Vs deve variar entre -6V e 6V para que a saída Vo não sature.

Exercício 3

a) Equação de Vo

Para encontrar a equação de Vo considerando um amplificador inversor com os resistores Rf e Rs, usamos a fórmula do amplificador inversor:

Vo = – ( (Rf/Rs) Va )

Dado:

  • Rf = 47 kΩ
  • Rs = 4,7 kΩ

Portanto, a equação de Vo é:

Vo = – ( 47 kΩ / 4,7 kΩ ) Va

Vo = – ( 10 Va )

b) Valor de Vo para Va = 2V

Substituindo Va = 2V na equação encontrada:

Vo = – ( 10 * 2 )

Vo = – 20V

c) Valor de Vo para Va = -4,5V

Substituindo Va = -4,5V na equação encontrada:

Vo = – ( 10 * -4,5 )

Vo = 45V

d) Valor de Vo para Va = 6V

Substituindo Va = 6V na equação encontrada:

Vo = – ( 10 * 6 )

Vo = – 60V

e) Limites de variação de Va para que a saída Vo não sature

Para que Vo não sature, precisamos garantir que Vo fique dentro da faixa de alimentação do amplificador operacional, que geralmente é de ±12V.

Usando a equação Vo = -10 Va:

-12V ≤ -10 Va ≤ 12V

Dividindo todos os termos por -10 (e invertendo a desigualdade):

1.2V ≥ Va ≥ -1.2V

Então, Va deve variar entre -1.2V e 1.2V para que a saída Vo não sature.

Exercício 4

a) Equação de Vo

Para encontrar a equação de Vo considerando um amplificador inversor com os resistores Rf e Rs, usamos a fórmula do amplificador inversor:

Vo = – ( (Rf/Rs) Va )

Dado:

  • Rf = 47 kΩ
  • Rs = 4,7 kΩ

Portanto, a equação de Vo é:

Vo = – ( 47 kΩ / 4,7 kΩ ) Va

Vo = – ( 10 Va )

b) Valor de Vo para Va = 2V

Substituindo Va = 2V na equação encontrada:

Vo = – ( 10 * 2 )

Vo = – 20V

c) Valor de Vo para Va = -4,5V

Substituindo Va = -4,5V na equação encontrada:

Vo = – ( 10 * -4,5 )

Vo = 45V

d) Valor de Vo para Va = 6V

Substituindo Va = 6V na equação encontrada:

Vo = – ( 10 * 6 )

Vo = – 60V

e) Limites de variação de Va para que a saída Vo não sature

Para que Vo não sature, precisamos garantir que Vo fique dentro da faixa de alimentação do amplificador operacional, que geralmente é de ±12V.

Usando a equação Vo = -10 Va:

-12V ≤ -10 Va ≤ 12V

Dividindo todos os termos por -10 (e invertendo a desigualdade):

1.2V ≥ Va ≥ -1.2V

Então, Va deve variar entre -1.2V e 1.2V para que a saída Vo não sature.

maurinsoft.com.br