一旦获得图像的凸包,它们以任何方式来对位于凸包内的像素进行评估。
import numpy as np import cv2 import PIL usg = cv2.imread("1.jpg",0) ret, threshold = cv2.threshold(usg, 10,255,cv2.THRESH_BINARY) _,contours,_ = cv2.findContours(threshold,cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) hull = [cv2.convexHull(c) for c in contours] final = cv2.drawContours(usg,hull,-1,(255,255,255))
这里,
final
给出图像的凸包。之后,我要访问船体内部的像素。
一旦获得图像的凸包,它们以任何方式对位于凸包内的像素进行处理。导入numpy as np导入cv2导入PIL usg = cv2.imread(“ 1.jpg”,0)ret,threshold = ...
如果已经有了绘制的凸包,则只需使用NumPy的boolean array indexing访问凸包内的像素。
凸包是凸多边形。您可以通过实现多边形填充算法来枚举船体内部的像素。对于凸多边形,使用扫描线方法很容易。