本文整理汇总了Python中cv2.CV_32S属性的典型用法代码示例。如果您正苦于以下问题:Python cv2.CV_32S属性的具体用法?Python cv2.CV_32S怎么用?Python cv2.CV_32S使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类cv2
的用法示例。
在下文中一共展示了cv2.CV_32S属性的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _connect_components_analysis
# 需要导入模块: import cv2 [as 别名]
# 或者: from cv2 import CV_32S [as 别名]
def _connect_components_analysis(image):
"""
connect components analysis to remove the small components
:param image:
:return:
"""
if len(image.shape) == 3:
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
else:
gray_image = image
return cv2.connectedComponentsWithStats(gray_image, connectivity=8, ltype=cv2.CV_32S)
示例2: find_connected
# 需要导入模块: import cv2 [as 别名]
# 或者: from cv2 import CV_32S [as 别名]
def find_connected(score_map, threshold=0.7):
binary_map = (score_map > threshold).astype(np.uint8)
connectivity = 8
output = cv2.connectedComponentsWithStats(binary_map, connectivity=connectivity, ltype=cv2.CV_32S)
label_map = output[1]
# show_image(np.asarray(label_map * 100.0, np.uint8))
return np.max(label_map), label_map
示例3: _connect_components_analysis
# 需要导入模块: import cv2 [as 别名]
# 或者: from cv2 import CV_32S [as 别名]
def _connect_components_analysis(image):
"""
:param image:
:return:
"""
if len(image.shape) == 3:
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
else:
gray_image = image
return cv2.connectedComponentsWithStats(gray_image, connectivity=8, ltype=cv2.CV_32S)
示例4: split_mask_erode_dilate
# 需要导入模块: import cv2 [as 别名]
# 或者: from cv2 import CV_32S [as 别名]
def split_mask_erode_dilate(mask, kernel=k_3x3, k=3):
img_erosion = cv.erode(mask, kernel, iterations=k)
output = cv.connectedComponentsWithStats(img_erosion, 4, cv.CV_32S)
if output[0] < 2:
return [mask], output[1]
else:
masks_res = []
for idx in range(1, output[0]):
res_m = (output[1] == idx).astype(np.uint8)
res_m = cv.dilate(res_m, kernel, iterations=k)
if res_m.sum() > 5:
masks_res.append(res_m)
return masks_res, output[1]
示例5: obj_histogram
# 需要导入模块: import cv2 [as 别名]
# 或者: from cv2 import CV_32S [as 别名]
def obj_histogram(self, mask, label):
# holders for predicted object and right object (easily calculate histogram)
predicted = []
labeled = []
# get connected components in label for each class
for i in range(self.num_classes):
# get binary image for this class
bin_lbl = np.zeros(label.shape)
bin_lbl[label == i] = 1
bin_lbl[label != i] = 0
# util.im_gray_plt(bin_lbl,'class '+str(i))
connectivity = 4
output = cv2.connectedComponentsWithStats(
bin_lbl.astype(np.uint8), connectivity, cv2.CV_32S)
num_components = output[0]
components = output[1]
stats = output[2]
centroids = output[3]
for j in range(1, num_components): # 0 is background (useless)
# only process if it has more than 50pix
if stats[j][cv2.CC_STAT_AREA] > 50:
# for each component in each class, see the class with the highest percentage of pixels
# make mask with just this component of this class
comp_mask = np.zeros(label.shape)
comp_mask[components == j] = 0
comp_mask[components != j] = 1
# mask the prediction
masked_prediction = np.ma.masked_array(mask, mask=comp_mask)
# get histogram and get the argmax that is not zero
class_hist, _ = np.histogram(masked_prediction.compressed(),
bins=self.num_classes, range=[0, self.num_classes])
max_class = np.argmax(class_hist)
# print("\nMax class: ",max_class," real: ",i)
# util.im_gray_plt(comp_mask)
# util.im_block()
# sum an entry to the containers depending on right or wrong
predicted.append(max_class)
labeled.append(i)
# for idx in range(len(predicted)):
# print(predicted[idx],labeled[idx])
# histogram to count right and wrong objects
histrange = np.array([[-0.5, self.num_classes - 0.5],
[-0.5, self.num_classes - 0.5]], dtype='float64')
h_now, _, _ = np.histogram2d(np.array(predicted),
np.array(labeled),
bins=self.num_classes,
range=histrange)
return h_now