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= ImageSamplingQuantizationNeighbor and DistanceContinuiousImage from Real WorldImage Features


Image

图像就是数组,每个像素点的颜色是响应值。

gitbook/assets/tmp1irw0f42.jpg

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

采样:从连续信号到离散信号。

gitbook/assets/image (61).png

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

量化:用多少比特代表每个像素的颜色。

gitbook/assets/image (64).png

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

  1. 邻域:4 邻域(上下左右),D 邻域(四个角),8 邻域(4+D)
  2. 欧氏距离:$$D_e = \sqrt{(x-s)^2+(x-t)^2}$$
  3. D4$$$$D4=|xs|+|yt|
  4. D8$$$$D8=max(|xs|+|yt|)