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

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.

主站蜘蛛池模板: 高邑县| 乌兰察布市| 晋州市| 江孜县| 晋江市| 阳西县| 阿尔山市| 北碚区| 凤山市| 滨州市| 南华县| 哈巴河县| 兴国县| 大悟县| 浦北县| 封开县| 德阳市| 娄底市| 蒙自县| 宜都市| 旬阳县| 台安县| 钦州市| 青海省| 巴林左旗| 文成县| 阜宁县| 河西区| 象山县| 民丰县| 安吉县| 连江县| 依兰县| 永福县| 扎囊县| 祁连县| 海原县| 贵州省| 寻乌县| 靖江市| 西城区|