Fixed kernel flip becouse CV2 is retarded
parent
3a899115a6
commit
fc599988c3
|
@ -30,9 +30,10 @@ def two_b() -> None:
|
|||
kernel by dividing the values such that the sum of absolute values is 1. Effectively,
|
||||
you have to divide each value by sum(abs(gx(x))).
|
||||
"""
|
||||
sigma = 1
|
||||
kernel = uz_image.gaussdx(sigma)
|
||||
print(kernel)
|
||||
sigmas = [0.5, 1, 2]
|
||||
for sigma in sigmas:
|
||||
kernel = uz_image.gaussdx(sigma)
|
||||
print(kernel)
|
||||
|
||||
def two_c() -> None:
|
||||
"""
|
||||
|
@ -54,6 +55,11 @@ def two_c() -> None:
|
|||
gauss = np.array([uz_image.get_gaussian_kernel(3)])
|
||||
gaussdx = np.array([uz_image.gaussdx(3)])
|
||||
|
||||
# Becouse CV2 applies the correlation instead of convolution, we need to flip the kernels
|
||||
gauss = np.flip(gauss, axis=1)
|
||||
gaussdx = np.flip(gaussdx, axis=1)
|
||||
|
||||
|
||||
fig, axs = plt.subplots(2, 3)
|
||||
|
||||
# Plot impulse only
|
||||
|
@ -64,8 +70,36 @@ def two_c() -> None:
|
|||
g_gt_impulse = impulse.copy()
|
||||
g_gt_impulse = cv2.filter2D(g_gt_impulse, cv2.CV_64F, gauss)
|
||||
g_gt_impulse = cv2.filter2D(g_gt_impulse, cv2.CV_64F, gauss.T)
|
||||
axs[0, 1].imshow(g_gt_impulse, cmap='gray')
|
||||
axs[0, 1].set_title('impulse * G * GT')
|
||||
axs[1, 0].imshow(g_gt_impulse, cmap='gray')
|
||||
axs[1, 0].set_title('impulse * G * GT')
|
||||
|
||||
# Plot impulse after convolution with G and DT
|
||||
g_dt_impulse = impulse.copy()
|
||||
g_dt_impulse = cv2.filter2D(g_dt_impulse, cv2.CV_64F, gauss)
|
||||
g_dt_impulse = cv2.filter2D(g_dt_impulse, cv2.CV_64F, gaussdx.T)
|
||||
axs[0, 1].imshow(g_dt_impulse, cmap='gray')
|
||||
axs[0, 1].set_title('impulse * G * DT')
|
||||
|
||||
# Plot impulse after convolution with D and GT
|
||||
d_gt_impulse = impulse.copy()
|
||||
d_gt_impulse = cv2.filter2D(d_gt_impulse, cv2.CV_64F, gaussdx)
|
||||
d_gt_impulse = cv2.filter2D(d_gt_impulse, cv2.CV_64F, gauss.T)
|
||||
axs[0, 2].imshow(d_gt_impulse, cmap='gray')
|
||||
axs[0, 2].set_title('impulse * D * GT')
|
||||
|
||||
# Plot impulse after convolution with GT and D
|
||||
gt_d_impulse = impulse.copy()
|
||||
gt_d_impulse = cv2.filter2D(gt_d_impulse, cv2.CV_64F, gauss.T)
|
||||
gt_d_impulse = cv2.filter2D(gt_d_impulse, cv2.CV_64F, gaussdx)
|
||||
axs[1, 1].imshow(gt_d_impulse, cmap='gray')
|
||||
axs[1, 1].set_title('impulse * GT * D')
|
||||
|
||||
# Plot impulse after convolution with DT and G
|
||||
dt_g_impulse = impulse.copy()
|
||||
dt_g_impulse = cv2.filter2D(dt_g_impulse, cv2.CV_64F, gaussdx.T)
|
||||
dt_g_impulse = cv2.filter2D(dt_g_impulse, cv2.CV_64F, gauss)
|
||||
axs[1, 2].imshow(dt_g_impulse, cmap='gray')
|
||||
axs[1, 2].set_title('impulse * DT * G')
|
||||
|
||||
plt.show()
|
||||
|
||||
|
|
Loading…
Reference in New Issue