Python cv2.MORPH_GRADIENT Examples
The following are 3
code examples of cv2.MORPH_GRADIENT().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
cv2
, or try the search function
.
Example #1
Source File: idcardocr.py From idmatch with MIT License | 6 votes |
def recognize_text(original): idcard = original # gray = cv2.cvtColor(idcard, cv2.COLOR_BGR2GRAY) # Morphological gradient: kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5)) opening = cv2.morphologyEx(idcard, cv2.MORPH_GRADIENT, kernel) # Binarization ret, binarization = cv2.threshold(opening, 0.0, 255.0, cv2.THRESH_BINARY | cv2.THRESH_OTSU) # Connected horizontally oriented regions kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (9, 1)) connected = cv2.morphologyEx(binarization, cv2.MORPH_CLOSE, kernel) # find countours _, contours, hierarchy = cv2.findContours( connected, cv2.RETR_CCOMP, cv2.CHAIN_APPROX_SIMPLE ) return contours, hierarchy
Example #2
Source File: morphological_operations.py From Mastering-OpenCV-4-with-Python with MIT License | 5 votes |
def morphological_gradient(image, kernel_type, kernel_size): """Applies the morfological gradient to the image with the specified kernel type and size""" kernel = build_kernel(kernel_type, kernel_size) morph_gradient = cv2.morphologyEx(image, cv2.MORPH_GRADIENT, kernel) return morph_gradient # This function closes and opens the image
Example #3
Source File: ocrd_anybaseocr_cropping.py From ocrd_anybaseocr with Apache License 2.0 | 5 votes |
def detect_textarea(self, arg): textarea = [] small = cv2.cvtColor(arg, cv2.COLOR_RGB2GRAY) height, width, _ = arg.shape kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)) grad = cv2.morphologyEx(small, cv2.MORPH_GRADIENT, kernel) _, bw = cv2.threshold( grad, 0.0, 255.0, cv2.THRESH_BINARY | cv2.THRESH_OTSU) kernel = cv2.getStructuringElement( cv2.MORPH_RECT, (10, 1)) # for historical docs connected = cv2.morphologyEx(bw, cv2.MORPH_CLOSE, kernel) contours, _ = cv2.findContours( connected.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) mask = np.zeros(bw.shape, dtype=np.uint8) for idx in range(len(contours)): x, y, w, h = cv2.boundingRect(contours[idx]) # print x,y,w,h mask[y:y+h, x:x+w] = 0 cv2.drawContours(mask, contours, idx, (255, 255, 255), -1) r = float(cv2.countNonZero(mask[y:y+h, x:x+w])) / (w * h) if r > 0.45 and (width*0.9) > w > 15 and (height*0.5) > h > 15: textarea.append([x, y, x+w-1, y+h-1]) cv2.rectangle(arg, (x, y), (x+w-1, y+h-1), (0, 0, 255), 2) if len(textarea) > 1: textarea = self.filter_noisebox(textarea, height, width) return textarea, arg, height, width