How to remove all lines and borders in an image while keeping text programmatically?

Since no one has posted a complete OpenCV solution, here’s a simple approach Obtain binary image. Load the image, convert to grayscale, and Otsu’s threshold Remove horizontal lines. We create a horizontal shaped kernel with cv2.getStructuringElement() then find contours and remove the lines with cv2.drawContours() Remove vertical lines. We do the same operation but with … Read more

How to recognize rectangles in this image?

Opencv (image processing and computer vision library written in c) has implementation for hough transform (the simple hough transform find lines in an image, while the generalized one finds more complex objects) so that could be a good start. For the rectangles which do have closed corners there are also corner detectors such as cornerHarris … Read more

Are there any fast alternatives to SURF and SIFT for scale-invariant feature extraction?

Although you already choose BRISK, you might find FREAK interesting. Author claims to have better results than BRISK and ORB. I should also add that ORB is scale-invariant but has some problems in that area. So I would still recommend it for someone to try it. The FREAK source code is compatible with OpenCV (how … Read more

How can I define a threshold value to detect only green colour objects in an image with Python OpenCV?

One way I make a HSV colormap. It’s more easy and accurate to find the color range using this map than before. And maybe I should change use (40, 40,40) ~ (70, 255,255) in HSV to find the green. Another way Convert to the HSV color space, Use cv2.inRange(hsv, hsv_lower, hsv_higher) to get the green … Read more

Altering trained images to train neural network

It is a very good way to increase the number of date you have. What you’ll do depends on your data. For example, if you are training on data obtained from a sensor, you may want to add some noise to the training data so that you can increase your dataset. After all, you can … Read more

How to construct a network with two inputs in PyTorch

By “combine them” I assume you mean to concatenate the two inputs. Assuming you concat along the second dimension: import torch from torch import nn class TwoInputsNet(nn.Module): def __init__(self): super(TwoInputsNet, self).__init__() self.conv = nn.Conv2d( … ) # set up your layer here self.fc1 = nn.Linear( … ) # set up first FC layer self.fc2 = … Read more

What is the algorithm that opencv uses for finding contours?

If you read the documentation it is mentioned this function implements the algorithm of: Suzuki, S. and Abe, K., Topological Structural Analysis of Digitized Binary Images by Border Following. CVGIP 30 1, pp 32-46 (1985) OpenCV is open source if you want to see how this is implemented just need to read the code: https://github.com/opencv/opencv/blob/master/modules/imgproc/src/contours.cpp#L1655 … Read more