fbpx
Sigmoidal
  • Home
  • LinkedIn
  • About me
  • Contact
No Result
View All Result
  • Português
  • Home
  • LinkedIn
  • About me
  • Contact
No Result
View All Result
Sigmoidal
No Result
View All Result

What is Sampling and Quantization in Image Processing

Carlos Melo by Carlos Melo
June 20, 2025
in Blog, Computer Vision, Posts
0
58
VIEWS
Share on LinkedInShare on FacebookShare on Whatsapp

Have you ever stopped to think about what happens between the moment light enters a camera lens, is focused at the focal point, passes through the Bayer filter, hits the sensor… and then that electromagnetic wave transforms into an array of numbers representing the captured image?

How can a continuous wave from the real world turn into a matrix with values between 0 and 255?

In this article, I will show you the basic principle behind the formation of digital images. We will understand how a digital image can be formed through two fundamental processes: sampling and quantization. The complete source code with Python examples is available below.

Download the Code for Free

To follow this tutorial, download the code by clicking the button below.

Sampling and Quantization

Just as for Aristotle, motion is the transition from potentiality to actuality, the creation of a digital image represents the realization of a continuous visual potential (captured by light) into a finite set of discrete data through sampling and quantization.

What is Sampling and Quantization in Image Processing

Imagine a photograph as an infinite painting, where each point in the image plane has a light intensity. This intensity is described by a continuous function defined as:

    \[f: \mathbb{R}^2 \rightarrow \mathbb{R},\]

where f(x, y) represents the grayscale level (or brightness) at the point (x, y). In the real world, x and y can take any real value, but a computer requires a finite representation: a grid of discrete points.

Sampling: Discretization of the image in the spatial domain (x, y)

Spatial sampling is the process of selecting values of this function on a regular grid, defined by intervals \Delta x and \Delta y. The result is a matrix M = (m_{ij}) of dimensions W \times H, where W is the width and H is the height in pixels. Each element of the matrix is given by:

    \[m_{ij} = f(x_0 + i \cdot \Delta x, y_0 + j \cdot \Delta y)\]

Think of it as placing a checkered screen over the painting: each square (pixel) captures the average value of f at that point.

The spatial resolution depends on the density of this grid, measured in pixels per unit of distance (such as DPI, or dots per inch). Smaller values of \Delta x and \Delta y mean more pixels, capturing finer details, like the outlines of a leaf in a photograph.

    \[\text{Continuous image: } f(x, y) \quad \rightarrow \quad \text{Digital image: } \begin{bmatrix} m_{00} & m_{01} & \cdots & m_{0, W-1} \\ m_{10} & m_{11} & \cdots & m_{1, W-1} \\ \vdots & \vdots & \ddots & \vdots \\ m_{H-1, 0} & m_{H-1, 1} & \cdots & m_{H-1, W-1} \end{bmatrix}.\]

For example, a Full HD image (1920 \times 1080 pixels) has higher spatial resolution than a VGA image (640 \times 480 pixels), assuming the same physical area. Spatial sampling can be visualized as the transformation of a continuous function into a discrete matrix, as shown above.

Quantization: Discretization of intensity levels

With the grid of points defined, the next step is to discretize the intensity values. In the real world, these values are continuous, but a computer requires a finite number of levels. This process, called intensity quantization, is performed by a quantization function:

    \[q: \mathbb{R} \rightarrow \{0, 1, \ldots, L-1\},\]

where L is the number of intensity levels. For grayscale images, it is common to use 1 byte (8 bits) per pixel, resulting in L = 2^8 = 256 levels, with 0 representing black and 255 representing white.

Imagine intensity as the height of a wave at each pixel. Quantization is like measuring that height with a ruler that has only L markings. The function q maps each real value to the nearest discrete level, creating a staircase-like representation. Thus, the pixel value at position (i, j) is:

    \[m_{ij} = q(f(x_0 + i \cdot \Delta x, y_0 + j \cdot \Delta y)).\]

Intensity Resolution

The intensity resolution, determined by L, affects visual quality. With L = 256 (8 bits), brightness transitions are smooth, ideal for common photos. However, with L = 16 (4 bits), artifacts like the “banding” effect appear, where color bands become visible.

In medical applications, such as tomography, 10 to 12 bits (L = 1024 or 4096) are used for greater fidelity.

For numerical processing, values can be normalized to the interval [0, 1] by an affine transformation f \leftarrow a f + b, and requantized for storage.

Discrete Structure and Computational Implications

Spatial sampling and intensity quantization convert a continuous image into a matrix of integers, where each m_{ij} represents the intensity of a pixel.

This discrete structure is the foundation of digital processing and imposes practical limitations. The space required to store an image is given by:

    \[b = W \cdot H \cdot k, \quad \text{with } k = \log_2(L).\]

For example, for a Full HD image (1920 \times 1080) with L = 256 (k = 8 bits), we have:

    \[b = 1920 \cdot 1080 \cdot 8 = 16,588,800 \text{ bits} \approx 2 \text{ MB}.\]

This justifies the use of compression (like JPEG), which reduces the final size by exploiting redundant patterns without significant visual loss.

Both spatial resolution (W \times H) and intensity (L) affect computer vision algorithms. More pixels increase detail and computational cost; more bits per pixel improve accuracy but require more memory.

Sampling and Quantization in Practice with Python

Now, let’s explore two practical examples to understand how continuous signals are transformed into digital representations. First, we’ll simulate a one-dimensional (1D) signal, like the sound of a musical instrument. Then, we’ll apply the same concepts to a real grayscale image.

Example 1: Sampling and Quantization of a 1D Signal

Imagine you’re recording the sound of a guitar. The vibration of the strings creates a continuous sound wave, but to turn it into a digital file, we need to sample in time and quantize the amplitude.

Let’s simulate this with a synthetic signal—a combination of sines that mimics complex variations, like a musical note. We’ll divide this example into three parts: signal generation, sampling, and quantization.

Part 1: Generating the Continuous Signal

First, we create an analog signal by combining three sines with different frequencies. This simulates a complex signal, like a sound wave or a light pattern.

# Importing necessary libraries
import numpy as np
import matplotlib.pyplot as plt

# Generating a continuous signal (combination of sines)
x = np.linspace(0, 4*np.pi, 1000)
y = np.sin(x) + 0.3 * np.sin(3*x) + 0.2 * np.cos(7*x)

What’s happening here?

  • We use np.linspace to create 1000 points between 0 and 4\pi, “simulating” the continuous domain (like time).
  • The signal y is a sum of sines (\sin(x) + 0{.}3\sin(3x) + 0{.}2\cos(7x)), creating smooth and abrupt variations, like in a real signal.
  • The graph shows the continuous wave, which is what a sensor (like a microphone) would capture before digitization.

Part 2: Sampling the Signal

Now, we sample the signal at regular intervals, simulating what a sensor does when capturing values at discrete points.

# Sampling: discretizing the continuous domain
sample_factor = 20
x_sampled = x[::sample_factor]
y_sampled = y[::sample_factor]

What’s happening here?

  • The sample_factor = 20 reduces the signal to 1/20 of the original points, taking 1 point every 20.
  • x[::sample_factor] and y[::sample_factor] select regularly spaced points, simulating spatial or temporal sampling.
  • The graph shows the samples (red points) over the continuous signal, highlighting the domain discretization.

Part 3: Quantizing the Sampled Signal

Finally, we quantize the sampled values, limiting the amplitude to 8 discrete levels, as an analog-to-digital converter would do.

# Quantization: reducing amplitude resolution
num_levels = 8
y_min, y_max = y.min(), y.max()
step = (y_max - y_min) / num_levels
y_quantized = np.floor((y_sampled - y_min) / step) * step + y_min

# Plotting the signal with sampling and quantization
plt.figure(figsize=(10, 4))
plt.plot(x, y, label='Continuous Signal', alpha=0.75, color='blue')
markerline, stemlines, baseline = plt.stem(x_sampled, y_sampled,
                                          linefmt='r-', markerfmt='ro', basefmt=' ',
                                          label='Samples')
plt.setp(markerline, alpha=0.2)
plt.setp(stemlines, alpha=0.2)

# Horizontal quantization lines
for i in range(num_levels + 1):
    y_line = y_min + i * step
    plt.axhline(y_line, color='gray', linestyle='--', linewidth=0.5, alpha=0.6)

# Vertical sampling lines
for x_tick in x_sampled:
    plt.axvline(x_tick, color='gray', linestyle='--', linewidth=0.5, alpha=0.6)

# Quantization boxes with filling
delta_x = (x[1] - x[0]) * sample_factor
for xi, yi in zip(x_sampled, y_quantized):
    plt.gca().add_patch(plt.Rectangle(
        (xi - delta_x / 2, yi),
        width=delta_x,
        height=step,
        edgecolor='black',
        facecolor='lightgreen',
        linewidth=1.5,
        alpha=0.85
    ))

# Quantized points
plt.scatter(x_sampled, y_quantized, color='green', label='Quantized')
plt.title("Sampled and Quantized Signal (8 Levels felici)")
plt.xlabel("Time")
plt.ylabel("Amplitude")
plt.legend()
plt.grid(False)
plt.tight_layout()
plt.show()

What’s happening here?

  • We calculate the quantization interval (step) by dividing the total amplitude (y_max - y_min) by num_levels = 8.
  • The np.floor function maps each sampled value to the nearest quantized level.
  • Green rectangles highlight the quantization “boxes,” showing how continuous values are approximated by discrete levels.
  • The final graph combines the continuous signal, samples, and quantized values, illustrating the loss of fidelity.

Practical tip: Try changing sample_factor to 10 (more samples) or num_levels to 4 (fewer levels) and observe how the signal becomes more or less faithful to the original.

Example 2: Sampling and Quantization of a Real Image

Now, let’s apply sampling and quantization to a real image, like a photo you’d take with your phone. Here, spatial sampling defines the resolution (number of pixels), and intensity quantization determines the grayscale tones.

Part 1: Loading the Grayscale Image

First, we load an image and convert it to grayscale, turning it into a NumPy matrix.

# Importing necessary libraries
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
from pathlib import Path

# Base path for images
NOTEBOOK_DIR = Path.cwd()
IMAGE_DIR = NOTEBOOK_DIR.parent / "images"

# Loading grayscale image
img = Image.open(IMAGE_DIR / 'hexapod.jpg').convert('L')
img_np = np.array(img)

# Displaying original image
plt.figure(figsize=(6, 4))
plt.imshow(img_np, cmap='gray')
plt.title("Original Grayscale Image")
plt.axis('off')
plt.show()
My photo with the hexapod, used to demonstrate the concepts of sampling and quantization in digital images.

What’s happening here?

  • We use PIL.Image.open to load the image hexapod.jpg and .convert('L') to transform it into grayscale (values from 0 to 255).
  • We convert the image into a NumPy matrix (img_np) for numerical manipulation.
  • The graph shows the original image, representing a continuous scene before manipulation.

Part 2: Spatial Sampling of the Image

We reduce the image’s resolution, simulating a camera with fewer pixels.

# Spatial sampling with factor 4
sampling_factor = 4
img_sampled = img_np[::sampling_factor, ::sampling_factor]

# Displaying sampled image
plt.figure(figsize=(6, 4))
plt.imshow(img_sampled, cmap='gray', interpolation='nearest')
plt.title("Image with Spatial Sampling (Factor 4)")
plt.axis('off')
plt.show()

What’s happening here?

  • The sampling_factor = 4 reduces the resolution, taking 1 pixel every 4 in both dimensions (width and height).
  • img_np[::sampling_factor, ::sampling_factor] selects a submatrix, reducing the number of pixels.
  • The result is a more “pixelated” image with fewer details, as if captured by a low-resolution camera.

Part 3: Intensity Quantization of the Image

Now, we quantize the values of the sampled image, reducing the grayscale tones to 8 and then to 2 levels.

# Uniform quantization function
def quantize_image(image, levels):
    image_min = image.min()
    image_max = image.max()
    step = (image_max - image_min) / levels
    return np.floor((image - image_min) / step) * step + image_min

# Quantizing the sampled image (8 levels)
quantization_levels = 8
img_quantized_8 = quantize_image(img_sampled, quantization_levels)

# Displaying sampled and quantized image (8 levels)
plt.figure(figsize=(6, 4))
plt.imshow(img_quantized_8, cmap='gray', interpolation='nearest')
plt.title("Sampled + Quantized Image (8 Levels)")
plt.axis('off')
plt.show()

# Quantizing the sampled image (2 levels)
quantization_levels = 2
img_quantized_2 = quantize_image(img_sampled, quantization_levels)

# Displaying sampled and quantized image (2 levels)
plt.figure(figsize=(6, 4))
plt.imshow(img_quantized_2, cmap='gray', interpolation='nearest')
plt.title("Sampled + Quantized Image (2 Levels)")
plt.axis('off')
plt.show()

What’s happening here?

  • The quantize_image function maps intensity values to levels discrete values, calculating the interval (step) and rounding with np.floor.
  • With 8 levels, the image retains some fidelity but loses smooth tone transitions.
  • With 2 levels, the image becomes binary (black and white), showing the extreme effect of quantization.
  • The graphs show how reducing levels creates visual artifacts, like “banding.”

Practical tip: Try changing sampling_factor to 8 or quantization_levels to 16 and see how the image gains or loses quality.

Takeaways

  • Spatial sampling transforms a continuous image into a pixel matrix, defined by a grid of intervals \Delta x and \Delta y. The density of this grid (spatial resolution) determines the amount of detail captured.
  • Intensity quantization reduces continuous brightness values to a finite set of levels (L). A lower L (like 2 or 8 levels) causes loss of detail but can be useful in specific applications, like binarization.
  • The combination of sampling and quantization defines the structure of a digital image, directly impacting file size (b = W \cdot H \cdot \log_2(L)) and the performance of computer vision algorithms.
  • In practical applications, like digital cameras or medical imaging, balancing spatial and intensity resolution is crucial for optimizing quality and computational efficiency.
  • The Python examples illustrate how sampling and quantization visually alter an image, from preserving details with 8 levels to extreme simplification with 2 levels.
ShareShare1Send
Previous Post

Histogram Equalization with OpenCV and Python

Carlos Melo

Carlos Melo

Computer Vision Engineer with a degree in Aeronautical Sciences from the Air Force Academy (AFA), Master in Aerospace Engineering from the Technological Institute of Aeronautics (ITA), and founder of Sigmoidal.

Related Posts

Como equalizar histograma de imagens com OpenCV e Python
Computer Vision

Histogram Equalization with OpenCV and Python

by Carlos Melo
July 16, 2024
How to Train YOLOv9 on Custom Dataset
Computer Vision

How to Train YOLOv9 on Custom Dataset – A Complete Tutorial

by Carlos Melo
February 29, 2024
YOLOv9 para detecção de Objetos
Blog

YOLOv9: A Step-by-Step Tutorial for Object Detection

by Carlos Melo
February 26, 2024
Depth Anything - Estimativa de Profundidade Monocular
Computer Vision

Depth Estimation on Single Camera with Depth Anything

by Carlos Melo
February 23, 2024
Point Cloud Processing with Open3D and Python
Computer Vision

Point Cloud Processing with Open3D and Python

by Carlos Melo
February 12, 2024

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • Trending
  • Comments
  • Latest
Estimativa de Pose Humana com MediaPipe

Real-time Human Pose Estimation using MediaPipe

September 11, 2023
ORB-SLAM 3: A Tool for 3D Mapping and Localization

ORB-SLAM 3: A Tool for 3D Mapping and Localization

April 10, 2023

Build a Surveillance System with Computer Vision and Deep Learning

1
ORB-SLAM 3: A Tool for 3D Mapping and Localization

ORB-SLAM 3: A Tool for 3D Mapping and Localization

1
Point Cloud Processing with Open3D and Python

Point Cloud Processing with Open3D and Python

1

Fundamentals of Image Formation

0

What is Sampling and Quantization in Image Processing

June 20, 2025
Como equalizar histograma de imagens com OpenCV e Python

Histogram Equalization with OpenCV and Python

July 16, 2024
How to Train YOLOv9 on Custom Dataset

How to Train YOLOv9 on Custom Dataset – A Complete Tutorial

February 29, 2024
YOLOv9 para detecção de Objetos

YOLOv9: A Step-by-Step Tutorial for Object Detection

February 26, 2024

Seguir

  • 🤖 Robôs que escalam, nadam, voam e rastejam.

Acabei de ver o que a Gecko Robotics está fazendo — e é impressionante.
Eles usam robôs que escalam, rastejam, nadam e voam para coletar dados estruturais de ativos físicos como navios, refinarias e usinas de energia.

Depois, tudo isso entra numa plataforma de AI chamada Cantilever, que combina:

✅ Ontologias baseadas em princípios físicos
✅ Edge robotics + sensores fixos
✅ Modelos preditivos para manutenção e operação

É como se estivessem criando um Digital Twin confiável de infraestruturas críticas — com dados de verdade, coletados direto do mundo físico.

Ah, e agora alcançaram status de unicórnio 🦄:
$1.25B de valuation, com foco em defesa, energia e manufatura pesada.

#MachineLearning #Robótica #MLOps #visãocomputacional
  • 🚨 FALTAM 2 DIAS!
As inscrições para a nova Pós em Visão Computacional & Deep Learning encerram neste domingo, 8 de junho, às 23h59.

Essa é sua chance de dominar IA aplicada, com foco total em projetos, e conquistar oportunidades como Machine Learning Engineer ou Computer Vision Specialist, no Brasil ou no exterior.

🔗 Link na bio para garantir sua vaga com bônus e valor promocional!

#VisaoComputacional #DeepLearning
  • 🤔🤔🤔 verdade ou mentira??
  • 🚀 NOVA PÓS EM VISÃO COMPUTACIONAL!

Seja especialista em Visão Computacional e Deep Learning! 

✔️ 400h de conteúdo
✔️ Curso reconhecido pelo MEC
✔️ Foco em prática e projetos reais

💡 1 CURSO, 2 CARREIRAS
Atue como Machine Learning Engineer E Computer Vision Engineer! 

📅 Aula de lançamento: 1º de junho, 20h

📍 Link na bio. Ative o lembrete e participe!

#computervision #machinelearning #datascience
  • Geo4D apresenta uma nova abordagem para reconstrução 4D monocular de cenas dinâmicas, reutilizando modelos de difusão de vídeo. 

🌀 A técnica dispensa sensores múltiplos ou dados reais — treinando apenas com dados sintéticos e generalizando bem em zero-shot. Isso é possível porque modelos de difusão capturam priors temporais e espaciais consistentes. 

O método prevê múltiplas modalidades geométricas: mapas de pontos, profundidade e raios. Em seguida, utiliza um algoritmo leve de alinhamento multi-modal para fundi-las de forma coerente. Esse processo acontece em janelas deslizantes, permitindo reconstruções 4D contínuas e robustas mesmo em vídeos longos.

Nos benchmarks, o Geo4D superou métodos SOTA como MonST3R em estimativa de profundidade e alcançou bons resultados em pose de câmera. Uma prova do poder de integrar visão computacional e modelos generativos. 🧠

Se curtiu a ideia, deixa seu like e fortalece o post!

Fonte: Zeren Jiang

#machinelearning #computervision #datascience
  • 📸 Reconstrução 3D do Arco do Triunfo com Gaussian Splatting, a partir de um único vídeo

A técnica usada é o Gaussian Splatting, uma abordagem moderna de renderização neural que substitui malhas e voxels por distribuições gaussianas no espaço 3D.

Esses pontos flutuantes carregam cor, opacidade e variância, permitindo uma renderização ultrarrápida e detalhada - ideal para aplicações em realidade aumentada, mapeamento urbano e digital twins.

Diferente dos métodos tradicionais, esse modelo ajusta diretamente os parâmetros das gaussianas, tornando o processo leve e eficiente, inclusive em tempo real.

📌 Fonte: Bohdan Vodianyk

#ComputerVision #VisãoComputacional #MachineLearning #GaussianSplatting
  • Você ainda acredita que resolver as top-150 questões do LeetCode é suficiente para ser aprovado em uma entrevista de Machine Learning Engineer ou Computer Vision Engineer?

Talvez já tenha sido… alguns anos atrás.

Hoje, no entanto, empresas que seguem o padrão de avaliação das FAANG - como Meta (Facebook), Apple, Amazon, Netflix e Google - vêm exigindo muito mais do que apenas conhecimento em algoritmos e estrutura de dados.

✅ Espera-se domínio em ML System Design
✅ Clareza ao comunicar trade-offs técnicos
✅ Experiência real em colocar modelos de machine learning em produção

Passar pela etapa de screening é só o começo.

Se você quer realmente se destacar, aqui estão 3 livros essenciais para estudar com estratégia! Arraste o carrossel para conferir a lista.

📌 Comente se você incluiria algum outro título.
📤 Compartilhe com um colega que também está se preparando.

#machinelearning #computervision #datascience
  • 🚀 NASA testa novo laser 3D para medir ventos e melhorar previsões meteorológicas

Desde o outono de 2024, a NASA tem utilizado um instrumento avançado chamado Aerosol Wind Profiler (AWP) para medir ventos em 3D com alta precisão.

Montado em uma aeronave especial, o AWP usa pulsos de laser para detectar velocidade e direção dos ventos, além da concentração de aerossóis (poeira, fumaça, sal marinho etc).

Esses dados são valiosos para modelos de Machine Learning aplicados à previsão do tempo, detecção de anomalias e simulação atmosférica.

📊 Oportunidades diretas para ML:

🔹 Treinamento supervisionado: previsões mais precisas usando dados reais de velocidade e direção dos ventos em múltiplas altitudes.

🔹 Modelagem de séries temporais: LSTMs e Transformers podem capturar padrões em sistemas complexos como furacões.

🔹 Data fusion: integração de sensores distintos (AWP, HALO, dropsondes) é um problema clássico resolvido com ML multimodal.

🔹 Assimilação de dados: ML pode atuar em tempo real para corrigir modelos físicos via técnicas híbridas (physics-informed ML).

Se você trabalha com IA, clima ou sensoriamento remoto, esse é o tipo de dado que muda o jogo!
  • Cada passo te aproxima do que realmente importa. Quer continuar avançando?

🔘 [ ] Agora não
🔘 [ ] Seguir em frente 🚀
  • 🇺🇸 Green Card por Habilidade Extraordinária em Data Science e Machine Learning

Após nossa mudança para os EUA, muitas pessoas me perguntaram como consegui o Green Card tão rapidamente. Por isso, decidi compartilhar um pouco dessa jornada.

O EB-1A é um dos vistos mais seletivos para imigração, sendo conhecido como “The Einstein Visa”, já que o próprio Albert Einstein obteve sua residência permanente através desse processo em 1933.

Apesar do apelido ser um exagero moderno, é fato que esse é um dos vistos mais difíceis de conquistar. Seus critérios rigorosos permitem a obtenção do Green Card sem a necessidade de uma oferta de emprego.

Para isso, o aplicante precisa comprovar, por meio de evidências, que está entre os poucos profissionais de sua área que alcançaram e se mantêm no topo, demonstrando um histórico sólido de conquistas e reconhecimento.

O EB-1A valoriza não apenas um único feito, mas uma trajetória consistente de excelência e liderança, destacando o conjunto de realizações ao longo da carreira.

No meu caso específico, após escrever uma petição com mais de 1.300 páginas contendo todas as evidências necessárias, tive minha solicitação aprovada pelo USCIS, órgão responsável pela imigração nos Estados Unidos.

Fui reconhecido como um indivíduo com habilidade extraordinária em Data Science e Machine Learning, capaz de contribuir em áreas de importância nacional, trazendo benefícios substanciais para os EUA.

Para quem sempre me perguntou sobre o processo de imigração e como funciona o EB-1A, espero que esse resumo ajude a esclarecer um pouco mais. Se tiver dúvidas, estou à disposição para compartilhar mais sobre essa experiência! #machinelearning #datascience
  • Green Card aprovado! 🥳 Despedida do Brasil e rumo à nova vida nos 🇺🇸 com a família!
  • Haverá sinais… aprovado na petição do visto EB1A, visto reservado para pessoas com habilidades extraordinárias!

Texas, we are coming! 🤠
  • O que EU TENHO EM COMUM COM O TOM CRUISE??

Clama, não tem nenhuma “semana” aberta. Mas como@é quinta-feira (dia de TBT), olha o que eu resgatei!

Diretamente do TÚNEL DO TEMPO: Carlos Melo &Tom Cruise!
  • Bate e Volta DA ITÁLIA PARA A SUÍÇA 🇨🇭🇮🇹

Aproveitei o dia de folga após o Congresso Internacional de Astronáutica (IAC 2024) e fiz uma viagem “bate e volta” para a belíssima cidade de Lugano, Suíça.

Assista ao vlog e escreve nos comentários se essa não é a cidade mais linda que você já viu!

🔗 LINK NOS STORIES
  • Um paraíso de águas transparentes, e que fica no sul da Suíça!🇨🇭 

Conheça o Lago de Lugano, cercado pelos Alpes Suíços. 

#suiça #lugano #switzerland #datascience
  • Sim, você PRECISA de uma PÓS-GRADUAÇÃO em DATA SCIENCE.
Instagram Youtube LinkedIn Twitter
Sigmoidal

O melhor conteúdo técnico de Data Science, com projetos práticos e exemplos do mundo real.

Seguir no Instagram

Categories

  • Aerospace Engineering
  • Blog
  • Carreira
  • Computer Vision
  • Data Science
  • Deep Learning
  • Featured
  • Iniciantes
  • Machine Learning
  • Posts

Navegar por Tags

3d 3d machine learning 3d vision apollo 13 bayer filter camera calibration career cientista de dados clahe computer vision custom dataset data science deep learning depth anything depth estimation detecção de objetos digital image processing histogram histogram equalization image formation job lens lente machine learning machine learning engineering nasa object detection open3d opencv pinhole projeto python quantization redes neurais roboflow rocket salário sampling scikit-learn space tensorflow tutorial visão computacional yolov8 yolov9

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional e Python na prática.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

No Result
View All Result
  • Home
  • Cursos
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
  • Português

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional e Python na prática.