天天看點

第2章 Python 數字圖像處理(DIP) --數字圖像基礎1 - 視覺感覺要素 - 亮度适應與辨識視覺感覺要素

數字圖像基礎1

  • 視覺感覺要素
      • 亮度适應與辨識
import sys
import numpy as np
import cv2
import matplotlib 
import matplotlib.pyplot as plt
import PIL
from PIL import Image

print(f"Python version: {sys.version}")
print(f"Numpy version: {np.__version__}")
print(f"Opencv version: {cv2.__version__}")
print(f"Matplotlib version: {matplotlib.__version__}")
print(f"Pillow version: {PIL.__version__}")
           
Python version: 3.6.12 |Anaconda, Inc.| (default, Sep  9 2020, 00:29:25) [MSC v.1916 64 bit (AMD64)]
Numpy version: 1.16.6
Opencv version: 3.4.1
Matplotlib version: 3.3.2
Pillow version: 8.0.1
           
def normalize(mask):
    return (mask - mask.min()) / (mask.max() - mask.min() + 1e-5)
           

視覺感覺要素

亮度适應與辨識

第二種現象稱為同時對比,即一個區域的感覺亮度并不隻是取決于其灰階,如下圖,所有的中心方塊都有完全相同的灰階,但當背景變得較亮時,它們在眼睛中會變得更暗。

# 同時對比
height, width = 512, 512
mid_h, mid_w = height//2 + 1, width//2 + 1 # 按書上公式floor(M/2) + 1

img_ori = np.zeros([height, width], dtype=np.float)
img_ori = (img_ori + 1.0) * 1.
temp = np.ones([200, 200]) * 128.

img_1 = img_ori.copy() * 50. 
img_1[mid_h-100:mid_h+100, mid_w-100:mid_w+100] = temp

img_2 = img_ori.copy() * 1.
img_2[mid_h-100:mid_h+100, mid_w-100:mid_w+100] = temp

img_3 = img_ori.copy() * 240.
img_3[mid_h-100:mid_h+100, mid_w-100:mid_w+100] = temp

plt.figure(figsize=(15, 5))
# plt.subplots_adjust(wspace=0.05)
plt.subplot(131), plt.imshow(Image.fromarray(img_1), 'gray'), plt.xticks([]), plt.yticks([])
plt.subplot(132), plt.imshow(Image.fromarray(img_2), 'gray'), plt.xticks([]), plt.yticks([])
plt.subplot(133), plt.imshow(Image.fromarray(img_3), 'gray'), plt.xticks([]), plt.yticks([])
plt.tight_layout()
plt.show()
           
第2章 Python 數字圖像處理(DIP) --數字圖像基礎1 - 視覺感覺要素 - 亮度适應與辨識視覺感覺要素

繼續閱讀