官术网_书友最值得收藏!

Code for visualizing an image 

Let's take a look at how an image can be visualized with the following code:

#import all required lib
import matplotlib.pyplot as plt

%matplotlib inline
import numpy as np
from skimage.io import imread
from skimage.transform import resize
# Load a color image in grayscale
image = imread('sample_digit.png',as_grey=True)
image = resize(image,(28,28),mode='reflect')
print('This image is: ',type(image),
'with dimensions:', image.shape)

plt.imshow(image,cmap='gray')

We obtain the following image as a result:

def visualize_input(img, ax):

ax.imshow(img, cmap='gray')
width, height = img.shape
thresh = img.max()/2.5
for x in range(width):
for y in range(height):
ax.annotate(str(round(img[x][y],2)), xy=(y,x),
horizontalalignment='center',
verticalalignment='center',
color='white' if img[x][y]<thresh else 'black')

fig = plt.figure(figsize = (12,12))
ax = fig.add_subplot(111)
visualize_input(image, ax)

The following result is obtained:

In the previous chapter, we used an MLP-based approach to recognize images. There are two issues with that approach:

  • It increases the number of parameters
  • It only accepts vectors as input, that is, flattening a matrix to a vector

This means we must find a new way to process images, in which 2D information is not completely lost. CNNs address this issue. Furthermore, CNNs accept matrices as input. Convolutional layers preserve spatial structures. First, we define a convolution window, also called a filter, or kernel; then slide this over the image.

主站蜘蛛池模板: 安宁市| 鸡泽县| 特克斯县| 兰西县| 江都市| 通辽市| 鸡西市| 应用必备| 阜康市| 洞口县| 彭泽县| 临洮县| 兴山县| 四会市| 萝北县| 宣汉县| 萝北县| 舞钢市| 尼木县| 彭泽县| 习水县| 哈巴河县| 长治市| 汉川市| 重庆市| 易门县| 四子王旗| 青岛市| 锦屏县| 班玛县| 阳高县| 三江| 九龙城区| 额济纳旗| 文成县| 闽清县| 怀远县| 宁国市| 灌云县| 中方县| 眉山市|