首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在二进制图像中找到特定点?

如何在二进制图像中找到特定点?
EN

Stack Overflow用户
提问于 2021-10-25 17:38:09
回答 1查看 54关注 0票数 0

我在大学里开始了一项研究,主题是使用人工智能来计算视网膜的一个区域。我们规定的第一部分是使用u-net分割视网膜的两个重要部分。第二种方法是利用分割结果找出关键点并进行计算。

因此,在下图中,我使用u-net显示了分割每个区域的输出(红色注释不是分割的一部分)。我试着在第一个和第二个块中表示我想要查找的区域。一旦这样做了,我就可以在合并它们时计算这些点之间的距离。所以,我的问题是:我可以使用哪种技术来读取像素,以便找到我标记的坐标?

OpenCV是一个可以帮助我的lib吗?这是我第一次处理这样的问题,所以感谢您的建议或指导。

EN

回答 1

Stack Overflow用户

发布于 2021-10-27 01:36:21

使用OpenCV:可以使用connectedComponentsWithStats()方法检测边距。

代码语言:javascript
运行
AI代码解释
复制
connectivity = 8  
output = cv2.connectedComponentsWithStats(binary_img, connectivity, cv2.CV_32S)

stats = output[2]         # stat matrix

first_blob_left = stats[0,cv2.CC_STAT_LEFT]
first_blob_right = stats[0,cv2.CC_STAT_RIGHT]
second_blob_left = stats[1,cv2.CC_STAT_LEFT]
second_blob_right = stats[1,cv2.CC_STAT_RIGHT]

if first_blob_left < second_blob_left:
    dist = second_blob_left - first_blob_right
else:
    dist = first_blob_left - second_blob_right

检测最深的点也可以用同样的方法:

代码语言:javascript
运行
AI代码解释
复制
connectivity = 8  
output = cv2.connectedComponentsWithStats(binary_img, connectivity, cv2.CV_32S)

stats = output[2]         # stat matrix

blob_top = stats[0,cv2.CC_STAT_TOP]
blob_height = stats[0,cv2.CC_STAT_HEIGHT]

deepest_point_y_position = blob_top + blob_height

注意:此代码尚未经过测试,它可能包含一些拼写错误。但是,这个想法仍然保持不变,而且应该不需要太多努力就能奏效。

看一看

代码语言:javascript
运行
AI代码解释
复制
labels = output[1]

"labels“是输入图像位置的数组,其中斑点的每个像素都标有相同的值。这将帮助您找到页边距的坐标。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69716516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档