Image Basic
eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nOVa23LaSFx1MDAxMH33V1Dsq63M/ZI3XHUwMDFi39d24luczVZqS4BcdTAwMDBcdTAwMTkhaSVcdTAwMTFcdTAwMWJS/vftXHUwMDExXHUwMDE4XHRcdTAwMDEydoKDN3aVXHIzI6anp8/pMz1836hUqskgdKrvK1XnvmF7bjOy76qbpv2bXHUwMDEzxW7gQ1x1MDAxN0nfx0E/aqQjO0lcdTAwMTLG79+9s8PQartJPVxiulYj6I1cdTAwMWVzPKfn+ElcZlx1MDAwM/+G95XK9/RvbqLEuU/SsWlrblx1MDAxYcGKrWeBn06pXHUwMDE0J4xJRSdcdTAwMDPceFx1MDAxN2ZKnCb0tmwvdrJcdTAwMWXTVD3YXHUwMDFmki815+6k2b5p7Nb0p7+89lU2a8v1vMtk4KVcdTAwMDbFXHUwMDAxrDvri5Mo6Do3bjPpPC4+177oqSjotzu+XHUwMDEzm4XjSWtcdTAwMTDaXHI3XHUwMDE5mDaEJq22304/I2u5T0dIbSGpXHUwMDA0pkRhwiedg9Q5wlx1MDAxMowwwjmVXHUwMDE4aVYwq1x1MDAxNnhBZMz6XHUwMDAzO+Y3M6xuN7ptsM5vTsYkke3HoVx1MDAxZME+ZePuxlx1MDAwYubSUlxca85cdTAwMTSlWjEqM0M6jtvuJMaarC120j3AQoNRiCA56TGThkfNNFx1MDAxMr5mno/snnNkXHUwMDFl8fuel3ef31x1MDAxY7tvqqNuOvaKQZVcdTAwMGas3K47R7R9fICjXf+wd9FcIk58wS8zV0xFoVx1MDAxZEXBXXXS8zB+lVx1MDAxOdpcdTAwMGab9ii+sCRMUCFcdTAwMTFcdTAwMTMs87vn+t2isV7Q6M5cdMlW4CeX7tDMS9BU677dc73BVMik8Fx1MDAwMFx1MDAwM496dju3jaZ523PbXHUwMDA2KVXPaU1DKHFcdTAwMDG8k+4kXGKz3lx1MDAwNkxju75cdTAwMTPNOj2I3Lbr297V/Clhhc7h45ZjK7fpdTt2TK9pV2njw+bzwM41KrY+gp0hzCnXWC9ccnalXHUwMDBmPqOzrS/73fr5yfFcdTAwMTa5IUnrer3BLlx1MDAxNbFcdTAwMDDNTFx1MDAxMyG5XHUwMDA0uFx1MDAxN9BOLS2ZXHUwMDE0WFx1MDAwYqI0XHUwMDEyK0O7lFx1MDAxNsJaXHUwMDEzqaXimIvMjjKwKyxcYlVcdTAwMWFnfPxcdTAwMGLA/ufpzb2+rjVOP91edJKjXHUwMDFkgptubTmwb5Z97tBN9r7p+t69zbc+XHUwMDFmke3Tqygkb5RELu1eXGJztF+XR2ZnXSWVlOhcdTAwMDZcIiFQtaLLU4l7271cdTAwMWVcZlx1MDAwN1x1MDAwN96X1vl+8mGn0/hY89abSjSSlkSUXG6NXHUwMDE5XHUwMDEyc3RcdTAwMDNcdTAwMDPBQJXCXG5YdXW6XHUwMDAxXHUwMDEzZlx0rYGtMIQ5VsvpXHUwMDA2wZRcdTAwMDCZQX4pk/xcdTAwMDDiS5nk/yRHzvu2n7hDOzGge1U2mT/zKlx1MDAxOVx1MDAwNTNRbH1kXHUwMDE0LJSQjKNnUMrZKZde/Xq4Nzjl9J/t490otMl6U4ogwqKg/1x1MDAxMZIzJ1x1MDAxMThcdTAwMTVYcDxQXHUwMDE4XHUwMDA0P5Za6IJVP49RXGJcdTAwMDZiXHUwMDAzRlx1MDAwMX3CXG4yqFxcnFBcdTAwMDTPrJxRyrBcdCc0XCLzsbpSbJ5cdTAwMTlv1IOoYvvNyq5cdTAwMWIntlx01ldcdTAwMDXpXHUwMDEzJqw0/yO1XHUwMDEwrbBcdTAwMWJcdTAwMTgjRTOfPYXWk4vr3rXDdm7kyfa/t71+f7972113tFKLcVxuXHRhdGTPksJIXHUwMDAxwEmDcElcdTAwMTUnnK7yLIFBiIDEUHCSYFxi0SXxSpBgXHUwMDFjY8kzXCJ5W4eJtUvVNeh2/b5cdTAwMWL049clgblcdTAwMTOvXHUwMDEy+kpcdTAwMTdcdTAwMWInyMdcdTAwMWGyNM84+CncJ52TWu9DfHY4bO+Ezrm6XHUwMDFi8tbxeuOeMmpcdTAwMDHUuKKSIUJncM8sRjWlXHUwMDE4cSbycvyn52lQ/lx1MDAwNHDPsMZcbtyeZd7SgiEhmmhKVl4wLM3TXHUwMDA05bLHq5T0Kq0o6FUuXHUwMDFj26vcXHUwMDA0kdd8XYg+YcLPXHUwMDAw64hcdTAwMWbnyWq1OFEj+OFcdTAwMTLz5Sv85Yy9loCVjFiMUDWnvJ/W4Vx1MDAxOOdCKSZcdTAwMDVfXZIm2oKwXHUwMDE3Y6Tm7ZiAXHUwMDE1WYRcIs0lmupcdTAwMWXjViompoj1xajNsvBj6JBxy0O2uueAXHUwMDE5sbzkeFx1MDAwNphBrUbJjus3Tc1qyrDxbdbRXHUwMDEy0jCFf6NcdTAwMWanXHUwMDBlxFx1MDAxNPyEJTKyXHUwMDBiKC5zl3GYXHUwMDFkplx0ylx1MDAxMlx1MDAxOJlbLY602fHZxTt+82mjymvfOaO2kIWUVohcdTAwMTNzvcOwokzNWlx1MDAwNaYzoSUxXHUwMDA28Vx1MDAxOYs8O05qQa/nJuD5j4HrJ0VcdTAwMGanrtw2XGbQceyZ7YdcdTAwMTXl+4pUXHUwMDExmk+clmrZq0pcdTAwMDam9M3k9dfNuaNcdTAwMTdcdTAwMDZ6+nQ+xLNP2sj/fz6/iYX8xlx1MDAxNMwkhFxcnt7Ka1JrSW9KQkxrJlx1MDAxMcFs+uJwRHHKXHUwMDAyOaIg57PU8aujOGFcdTAwMDGLKiWFXsRwM2pcdTAwMDTkXHUwMDEzJYDYbPDvw2tLU1xikFx1MDAwM6fjU2RcdTAwMWVPj+RcdTAwMDHZjVx1MDAxMkhuXGboJS1Fv4zSymvwU/bAwVxuy/FcctqsQdqCfZVcdTAwMTJkptG/b5vNXHUwMDE2xHTh4Vx1MDAxZiQwtfAmhSuBXHUwMDE1gDvDx1NcdTAwMDRWXvxeS1x1MDAwMsOIwZnJXHUwMDFjXHUwMDFjhbkrmWEwRSxEXHUwMDEwMckzzSmrYzBqaU5cYuiHQlx1MDAwMTan0ThcdTAwMTiikSSjVF0kNDj5waNS/Y589lxm/qCUIUyJkVx1MDAwMZTkdjTPaUhjXHUwMDAyKo2rNFwiXkZp5V9HmlZpXHUwMDE4S4UwZEnImIJJOccoZFx0isch+rZpbUGgm5+tYow/k+ZcdTAwMTbe7uS+RjZTL1x1MDAxNuBvXHLbvTTNbX+gw6bbv7pcIoef77bxUXvv/ORmvWlcdTAwMGX0XHUwMDE38JjGII8lN0WYbLWjXHUwMDBiXHUwMDFlZZHHpLkyisNcXIA+10pcIlGsT5VUjZSp64nVf8msjL5cYlx1MDAwNatfQl8/UDPad+ykXHUwMDFmOa9cXM9dNPezqkRcdTAwMWJj8FftMLxMwJdcdTAwMTOahM1zm2OHZHZUv7nO3U55NG2MUW/g5aQ56mHj4T+vppEuIn0= Image Sampling Quantization Neighbor and Distance Continuious Image from Real World Image Features
Image
图像就是数组,每个像素点的颜色是响应值。
Code
import skimage.data as data
from PIL import Image
image = Image.fromarray(data.astronaut())
image.show()
{% hint style="info" %}
skimage.data模块有很多demo 图片python
print(data.__all__)
['astronaut', 'binary_blobs', 'brain', 'brick', 'camera', 'cat', 'cell', 'cells3d', 'checkerboard', 'chelsea', 'clock', 'coffee', 'coins', 'colorwheel', 'data_dir', 'download_all', 'eagle', 'file_hash', 'grass', 'gravel', 'horse', 'hubble_deep_field', 'human_mitosis', 'immunohistochemistry', 'kidney', 'lbp_frontal_face_cascade_filename', 'lfw_subset', 'lily', 'logo', 'microaneurysms', 'moon', 'nickel_solidification', 'page', 'palisades_of_vogt', 'protein_transport', 'retina', 'rocket', 'shepp_logan_phantom', 'skin', 'stereo_motorcycle', 'text', 'vortex']
Sampling
采样:从连续信号到离散信号。
Code
import numpy as np
import matplotlib.pyplot as plt
def generate_image(width, height):
I = np.zeros((width, height))
for x in range(width):
for y in range(height):
I[x, y] = np.cos(x/width*2*np.pi) * np.cos(y/height*2*np.pi) * 255
return I
def plot(index,n):
plt.subplot(1,4,index+1)
plt.imshow(generate_image(n, n), cmap='gray')
plt.title(f"{n}x{n}")
plt.axis('off')
for i,n in enumerate([5,15,50,1000]):
plot(i,n)
plt.show()
Quantization
量化:用多少比特代表每个像素的颜色。
Code
import numpy as np
import matplotlib.pyplot as plt
def generate_image(level):
I = np.zeros((16,256))
for x in range(256):
n = 2**level # 一共多少个格子
length = int(256/n) # 每个格子有多大
I[:, x] = int(x/length) / n
return I/np.max(I)
def plot(index,level):
plt.subplot(4,1,index+1)
plt.imshow(generate_image(level), cmap='gray', vmax=1, vmin=0)
plt.title(f"level = {level}")
plt.axis('off')
for index,level in enumerate([1,2,4,8]):
plot(index,level)
plt.show()
Neighbor and Distance
邻域:4 邻域(上下左右),D 邻域(四个角),8 邻域(4+D)
欧氏距离:$$D_e = \sqrt{(x-s)^2+(x-t)^2}$$
距 离 : D 4 $ $ 距 离 : $ $ D 4 = | x − s | + | y − t |
距 离 : D 8 $ $ 距 离 : $ $ D 8 = max ( | x − s | + | y − t | )