使用OpenCV对目标分割

图像处理 目标分割

加载图片
src =cv2.imread(‘image/4.jpg’)
cv2.namedWindow(“input_image”,cv2.WINDOW_AUTOSIZE)
cv2.imshow(“input_image”,src)

对图片进行适当的处理

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)
    #print("threshold value : %s"%ret)
    cv2.imshow("binary image", binary)
    dst = cv2.cvtColor(binary, cv2.COLOR_GRAY2BGR)

获取目标对象循环遍历得到每个实体的基本信息 然后使用画图把检测到的目标标出来
`for i, contour in enumerate(contours):

    x, y, w, h = cv2.boundingRect(contour)
    print("长宽高",x,y,w,h)
    cv2.rectangle(dst, (x, y), (x+w, y+h), (0, 0, 255),0)
    img = dst[y-1:y+h+1,x-1:x+w+1]
    #查看每个具体目标并分离出来
    cv2.imshow('fill_binary'+str(i),img)  
    #保存图片
    #cv2.imwrite('image'+str(i)+'.jpg',img)
 cv2.imshow("measure-contours", dst)`

效果展示
原图
图片太小了 不好展示 自己去试吧

   -----第一次写博客  谅解

你可能感兴趣的:(OpenCV图像处理)