我正在使用OpenCV 3.1.0和Python 2.7在虚拟环境中进行项目的图像分析。我必须能够将我的物体检测为感兴趣的区域。到目前为止,我能够确定物体的轮廓。但是,正如您在下面看到的那样,结果远非我所需要的。
我的代码现在:
import numpy as np
import cv2
import imutils
im = cv2.imread('testimg.jpg')
ratio = im.shape[0] / 500.0
orig = im.copy()
im = imutils.resize(im, height = 500)
cv2.imwrite('testimgsmall.jpg', im)
imgray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(imgray, 127, 255, 0)
im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(im, contours, -1, (0,255,0), 3)
cv2.imwrite('edges.jpg', im)
cv2.destroyAllWindows()
答案 0 :(得分:0)
为了检测您的对象,您可以采用两种方法执行:
由于背景为白色,您可以根据颜色进行阈值处理。另外,尝试使用不同的颜色空间。
调整阈值,使背景为黑色,前景对象为白色。在这里,您的阈值不适合给定的图像。
OR