iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0
Software Development

從像素到 Computer Vision:30 天理解數位影像處理系列 第 2

Day 2 | 電腦到底是怎麼「看見」一張圖片的?

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20260819/2018178016O3Ucpqd9.png

如果今天我把一張狗的照片丟給你。

你大概不到一秒就知道:

「這是一隻狗。」

但如果把同一張照片交給電腦呢?

它真的有看到一隻狗嗎?

答案是...

沒有。

電腦其實什麼都沒看到

在電腦眼裡,一張圖片並不是:

  • 房子

它甚至不知道什麼叫做「圖片」。

它看到的只有一大串數字。

例如下面是一張非常小的灰階圖片。

52  61  70
81 120 145
200 230 255

我們知道這些數字代表亮度。

但是對電腦來說,它只是一個二維陣列。

沒有任何「圖片」的概念。

為什麼數字會變成圖片?

如果把每個數字對應到一個亮度:

  • 0 = 黑色
  • 255 = 白色

中間的數字就是不同程度的灰色。

例如

0

就是純黑。

255

就是純白。

所以對電腦來說,圖片只是 很多很多像素,每個像素都有自己的數值。

我們來寫程式吧!

這 30 天的文章中會使用 Google Colab 來寫程式。

請在 colab 寫入以下程式碼,看看會跑出什麼。

import numpy as np
import matplotlib.pyplot as plt

img = np.array([
    [0, 64, 128],
    [96, 160, 224],
    [192, 240, 255]
], dtype=np.uint8)

plt.imshow(img, cmap="gray")
plt.axis("off")
plt.show()

https://ithelp.ithome.com.tw/upload/images/20260819/20181780lqiAl5WoHF.png

執行後,會看到一張只有 3 × 3 的灰階圖片。

雖然它非常小,但它已經是一張影像了。

因為圖片本來就是數字。

如果把圖片放大呢?

我們把 colab 的程式改成:

img = np.random.randint(0, 256, (30, 30), dtype=np.uint8)

plt.imshow(img, cmap="gray")
plt.axis("off")
plt.show()

https://ithelp.ithome.com.tw/upload/images/20260819/20181780QzyKCXG9a6.png

我們會得到一張充滿雜訊、很像馬賽克的圖片。

在這兩個小實驗中,我們根本沒有畫任何東西。

只是寫入一些數字,電腦卻把它顯示成圖片。

這是因為圖片不是「畫」出來的,而是把數字映射成亮度。

Day 1 總結

今天我們沒有學任何影像處理演算法。

但我們建立了一個很重要的觀念:

圖片 = 一個由數字組成的矩陣。

未來的各個影像處理的方式,本質上都是在操作這個矩陣。

所以在影像處理中的主要問題並不是:

「我要怎麼處理圖片?」

而是:

「我要怎麼修改這些數字,讓圖片產生我想要的變化?」

從明天開始,我們就會正式認識這些組成圖片的最小單位。

Pixel(像素)。


上一篇
Day 1 | 前言
下一篇
Day 3 | Pixel、Resolution、Color Depth:一張圖片到底是怎麼組成的?
系列文
從像素到 Computer Vision:30 天理解數位影像處理5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言