np.ones() shape resize using cv.trackbar
I'm trying to create a variable sized kernel using np.ones method and trackbars in order to easily modify the size of the kernel. The problem seems to be that the width of the kernel does not decrease when the afferent parameter gets smaller. However this is not the case for the height of the kernel. The shape is correctly passed as a tuple of integers. Could anyone help me understand what's going on here?
import cv2 as cv
import numpy as np
def nothing(x):
pass
img = cv.imread('sudoku.jpg', 0)
if img is None:
print ('Null Image')
else:
cv.namedWindow('Trackbars')
cv.createTrackbar('kernel_W', 'Trackbars', 1, 100, nothing)
cv.setTrackbarPos('kernel_W', 'Trackbars', 1)
cv.createTrackbar('kernel_H', 'Trackbars', 1, 100, nothing)
cv.setTrackbarPos('kernel_H', 'Trackbars', 1)
cv.createTrackbar('bin_Th', 'Trackbars', 1, 255, nothing)
cv.setTrackbarPos('bin_Th', 'Trackbars', 1)
print (img.shape)
while True:
kSize_w = cv.getTrackbarPos('kernel_W', 'Trackbars')
kSize_h = cv.getTrackbarPos('kernel_H', 'Trackbars')
bin_Th_val = cv.getTrackbarPos('bin_Th', 'Trackbars')
_, mask = cv.threshold(img, bin_Th_val, 255, cv.THRESH_BINARY)
kernel = np.ones((kSize_h,kSize_w), dtype = np.uint8)
dilation= cv.dilate(mask, kernel, iterations = 3)
cv.imshow('Initial Image', img)
cv.imshow('Kernel', kernel)
cv.imshow('mask', mask)
cv.imshow('dilation', dilation)
if cv.waitKey(2) == 27:
break
please show code, we cannot help you without
Added code above
please, TEXT, not screenshots
added above
Do not drag on tab. for kSize_w or kSize_h. Just click on any gray area bar, until u see value. Then do same as kSize_h. After that, u can continue drag kSize_w and kSize_h to see resizing changed.