In [1]:
import cv2
import numpy as np
In [2]:
im = cv2.imread('data/src/lena.jpg')
print(im.shape)
In [3]:
print(im.dtype)
In [4]:
cv2.imwrite('data/temp/lena.png', im)
im_png = cv2.imread('data/temp/lena.png')
In [5]:
print(np.array_equal(im, im_png))
In [6]:
cv2.imwrite('data/temp/lena.bmp', im)
im_bmp = cv2.imread('data/temp/lena.bmp')
In [7]:
print(np.array_equal(im, im_bmp))
In [8]:
print(np.array_equal(im_png, im_bmp))
In [9]:
cv2.imwrite('data/dst/lena_q25.jpg', im, [cv2.IMWRITE_JPEG_QUALITY, 25])
im_q25 = cv2.imread('data/dst/lena_q25.jpg')
In [10]:
print(np.array_equal(im, im_q25))
In [11]:
print(im.shape == im_q25.shape)
In [12]:
print(im.shape == (250, 400, 3))
In [13]:
im_diff = im.astype(int) - im_q25.astype(int)
In [14]:
print(im_diff.max())
In [15]:
print(im_diff.min())
In [16]:
im_diff_abs = np.abs(im_diff)
In [17]:
print(im_diff_abs.max())
In [18]:
print(im_diff_abs.min())
In [19]:
cv2.imwrite('data/dst/lena_diff_abs.png', im_diff_abs)
Out[19]:
In [20]:
im_diff_abs_norm = im_diff_abs / im_diff_abs.max() * 255
In [21]:
print(im_diff_abs_norm.max())
In [22]:
print(im_diff_abs_norm.min())
In [23]:
cv2.imwrite('data/dst/lena_diff_abs_norm.png', im_diff_abs_norm)
Out[23]:
In [24]:
im_diff_center = np.floor_divide(im_diff, 2) + 128
In [25]:
print(im_diff_center.max())
In [26]:
print(im_diff_center.min())
In [27]:
cv2.imwrite('data/dst/lena_diff_center.png', im_diff_center)
Out[27]:
In [28]:
im_diff_center_norm = im_diff / np.abs(im_diff).max() * 127.5 + 127.5
In [29]:
print(im_diff_center_norm.max())
In [30]:
print(im_diff_center_norm.min())
In [31]:
cv2.imwrite('data/dst/lena_diff_center_norm.png', im_diff_center_norm)
Out[31]:
In [32]:
im_diff_bin = (im_diff_abs > 32) * 255
In [33]:
cv2.imwrite('data/dst/lena_diff_bin.png', im_diff_bin)
Out[33]:
In [34]:
print(list(zip(*np.where(im_diff_abs == np.max(im_diff_abs)))))
In [35]:
print(list(zip(*np.where(im_diff_abs > 100))))