交互式爱情
这是一种方法 - 我将让您在最后填写详细信息。我基本上是在黑色背景上创建一个白色十字,并使用“模板匹配”在超声图像中查找此类内容:#!/usr/bin/env python3import numpy as npimport cv2# Make a white cross (+ sign) on a black backgroundcross = np.zeros((10,10), np.uint8)cross[..., [4,5]] = 255cross[[4,5], ...] = 255十字架现在看起来像这样:array([[ 0, 0, 0, 0, 255, 255, 0, 0, 0, 0], [ 0, 0, 0, 0, 255, 255, 0, 0, 0, 0], [ 0, 0, 0, 0, 255, 255, 0, 0, 0, 0], [ 0, 0, 0, 0, 255, 255, 0, 0, 0, 0], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [ 0, 0, 0, 0, 255, 255, 0, 0, 0, 0], [ 0, 0, 0, 0, 255, 255, 0, 0, 0, 0], [ 0, 0, 0, 0, 255, 255, 0, 0, 0, 0], [ 0, 0, 0, 0, 255, 255, 0, 0, 0, 0]], dtype=uint8)继续代码:# Load ultrasound imageim = cv2.imread('ultrasound.jpg', cv2.IMREAD_GRAYSCALE)# Look for crossesres = cv2.matchTemplate(im, cross, cv2.TM_CCORR_NORMED)# Contrast stretchnorm = cv2.normalize(res, None, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX)cv2.imwrite("result.png", res)这给出了:然后,您可以使用阈值找到峰值,如下所示:以这些点为中心绘制十字,最后使用修复来填充它们。