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

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.

主站蜘蛛池模板: 江安县| 克东县| 抚顺县| 贡山| 温宿县| 科尔| 台北市| 望谟县| 宜宾县| 鄂州市| 明光市| 正镶白旗| 高台县| 江孜县| 会昌县| 宁乡县| 兰溪市| 宜兰县| 山东省| 弥渡县| 湘乡市| 隆子县| 容城县| 仪陇县| 桃园市| 清河县| 湘潭市| 壤塘县| 丰城市| 南雄市| 庆元县| 东明县| 文昌市| 南华县| 南涧| 庄浪县| 乐至县| 礼泉县| 万山特区| 盐亭县| 平南县|