在计算机视觉和图像处理中,创建测试图像通常很有用,可以更好地了解算法或过滤器的执行方式。测试图像作为基准,可以对多种算法进行相互比较。
其实通过skimage可以轻松获得许多测试图像,但它们通常不适合表征算法和滤波器。我们的目标是在更简单的图像上表征算法,我们将专注于使用 numpy 和 opencv 创建旋转对称测试图像。首先我们将制作一个简单的测试图像,然后我们将使用正弦曲线制作更复杂的图像。
import numpy as np
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
# size of NxN image
n = 512
# get test image of a circle
test_image = np.zeros((n, n))
cv2.circle(test_image, center=(n//2, n//2), radius=n//3, color=(255,), thickness=-1)
# OPTIONAL: blurr test image
cv2.GaussianBlur(test_image, ksize=(9,9), sigmaX=11, dst=test_image)
# 0-1 normalize and cast to float32
cv2.normalize(test_image, test_image, 0, 1, cv2.NORM_MINMAX, dtype=cv2.CV_32FC1)
# display
plt.imshow(test_image)
plt.title("Test Image");