PIL vs. cv2
import cv2
import numpy as np
from PIL import Image
if __name__ == '__main__':
image_name = r"C:\Users\mcc\Pictures\1k.png"
img_rgb_PngImageFile = Image.open(image_name)
img_rgb_numpy = np.array(img_rgb_PngImageFile)
px = img_rgb_numpy[25, 25]
print(px)
img_bgr_numpy = cv2.cvtColor(img_rgb_numpy, cv2.COLOR_RGB2BGR)
img_bgr_cv_4 = cv2.imread(image_name, -1)
img_bgr_cv_3 = cv2.imread(image_name)
img_bgr_4to3 = img_bgr_cv_4[:, :, :3]
print(np.array_equal(img_bgr_numpy, img_bgr_cv_3))
print(np.array_equal(img_bgr_numpy, img_bgr_4to3))
px = img_bgr_cv_3[25, 25]
px = img_bgr_cv_4[25, 25]
图片裁剪
import cv2
import numpy as np
if __name__ == '__main__':
image_r = r"C:\Users\mcc\Pictures\xm.png"
image_w = r"C:\Users\mcc\Pictures\xm_w.png"
img_bgr_r = cv2.imread(image_r, -1)
img_bgr_w = img_bgr_r[16:382, 47:539, :]
cv2.imwrite(image_w, img_bgr_w)
等比例分割图片
import cv2
import numpy as np
import time
if __name__ == '__main__':
start_time = time.time()
image_r = r"C:\Users\mcc\Pictures\cycle_2670.png"
img_bgr_r = cv2.imread(image_r, -1)
rows = img_bgr_r.shape[0]
cols = img_bgr_r.shape[1]
print(rows, cols)
v_list = np.vsplit(img_bgr_r, 24)
i = 0
for v_arr in v_list:
h_list = np.hsplit(v_arr, 16)
for h_arr in h_list:
i += 1
cv2.imwrite(fr"C:\Users\mcc\Pictures\split1\cycle_2670_{i}.png", h_arr)
print(f"execution_time : {time.time() - start_time} s")