I am new to image processing, and started learning scikit-image. I am trying to detect the corners of a rectangle, and then cropping the whole image to it. But I am lost in the sheer amount of segmentation and detection algorithms and don't know which one I need and how to do it.
This code generates a sample image. I want to crop it to the green rectangle. What do I need to do?
from matplotlib import pyplot as pyplot
import numpy as np
import skimage
from skimage import draw
img = np.zeros((500, 500, 3), dtype=np.double)
poly = np.array([[25, 25],
[25, 75],
[75, 75],
[75, 25]])
rr, cc = draw.polygon(poly[:, 0], poly[:, 1], img.shape)
img[rr, cc, 1] = 1
plt.imshow(img)
plt.show()
The task would be to detect the edges of the rectangle (poly array) and crop the image to it.
I tried harris corner detection, canny edge detection and many others, but am totally confused. This seems like a simple task but I am not getting it.
Would this be easier to do with OpenCV? Help please!