Menu
CoddyTech

배열로 표현한 이미지

Coddy Machine Learning 여정의 데이터와 시각화 섹션에 포함된 레슨. 60개 중 29번째.

흑백 사진은 픽셀마다 밝기 값이 하나씩 있는 숫자 격자입니다. 따라서 2D 배열은 이미지이며, ax.imshow로 그릴 수 있습니다:

plus = np.array([[0, 0, 1, 0, 0],
                 [0, 0, 1, 0, 0],
                 [1, 1, 1, 1, 1],
                 [0, 0, 1, 0, 0],
                 [0, 0, 1, 0, 0]])
fig, ax = plt.subplots()
ax.imshow(plus, cmap="gray")
plt.show()

검은 배경에 흰색 더하기 기호가 있는 5×5 이미지로, 각 픽셀에 값이 표시되어 있습니다. 흰색 십자에는 1, 검은색 모서리에는 0

cmap="gray"는 회색 컬러맵을 선택합니다. 가장 작은 값은 검은색, 가장 큰 값은 흰색으로 표시됩니다. 배열에 쓰인 순서대로 행 0이 맨 위에 그려집니다.

사진은 보통 0(검은색)부터 255(흰색)까지의 값을 저장합니다. 이 과정을 더 진행하면, 모델이 이와 똑같은 방식으로 저장된 손글씨 숫자를 읽습니다.

challenge icon

챌린지

중급

스캐너가 인쇄된 글자를 읽었지만 반전된 상태로 저장했습니다. 어두운 종이에 밝은 잉크로 표시되어 있습니다. 중첩 리스트 scan에는 각 픽셀의 밝기가 0부터 255까지 저장되어 있습니다.

  1. scan을 배열로 바꾸고 반전하세요. 각 픽셀은 255에서 해당 값만큼 뺀 값이 됩니다.
  2. 회색 색상표를 사용해 그린 다음, 제목을 Letter E로 설정하고 표시하세요.

수정한 뒤 스캔한 L인 아래 이미지처럼 보여야 합니다.

흰색 배경에 있는 작은 검은색 L 글자. 높이 7픽셀, 너비 5픽셀이며 제목은 글자 L

프로그램은 아무것도 출력하지 않습니다. Coddy가 이미지의 각 행을 설명합니다.

직접 해보기

import numpy as np
import matplotlib.pyplot as plt

scan = [[255, 255, 255, 255, 255],
        [255, 30, 0, 0, 0],
        [255, 0, 0, 0, 0],
        [255, 255, 255, 200, 0],
        [255, 0, 0, 0, 0],
        [255, 0, 0, 0, 15],
        [255, 255, 255, 255, 255]]

# 아래에 코드를 작성하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

데이터와 시각화의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러