python - 如何使用python从opencv中的黑色文本中分离黑色曲线
问题描述
import numpy as np
import cv2
im = cv2.imread("goldstandard.png")
nemo = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
hsv_nemo = cv2.cvtColor(nemo, cv2.COLOR_RGB2HSV)
dictionaryHSV = {
"greenCombo": [[30, 126, 87], [70, 255, 250]],
'red': [[0, 92, 212], [10, 265, 255]],
'blue': [[110, 7, 214], [130, 255, 255]],
'black': [[0, 0, 0], [10, 10, 40]],
'another1': [[20, 245, 151], [40, 255, 231]],
'pink': [[140, 126, 215], [160, 146, 255]]
}
for r1, r2 in dictionaryHSV.values():
lower = np.array(r1)
upper = np.array(r2)
mask = cv2.inRange(hsv_nemo, lower, upper)
# cv2.imshow("masked",mask)
# cv2.waitKey(0)
nm = np.ones((nemo.shape[0], nemo.shape[1], nemo.shape[2]), dtype=np.uint8)
for i in range(nm.shape[0]):
for j in range(nm.shape[1]):
nm[i][j] = (255, 255, 255)
result = cv2.bitwise_and(nm, nm, mask=mask)
cv2.imshow("mappped", result)
cv2.waitKey(0)
我有曲线图图像,我想根据颜色分离所有曲线当我遇到黑色曲线时遇到问题我得到黑色曲线以及图中的黑色文本我只想得到曲线而不是文本。我使用“HSV”颜色空间中的颜色范围来识别颜色。提前致谢。
解决方案
- 提取正方形内的区域。
- 删除所有非黑色像素。
- 找到所有轮廓。
- 选择一个最大的轮廓 - 这将是你的曲线。
推荐阅读
- caching - 根据 3 个 hashKey 字段在 Redis Cache 中搜索
- vb.net - 为什么 Visual Studio 中的文件夹不会在 Web 应用部署上复制
- macos - 如何将新的 ssh 密钥添加到现有的 droplet?
- vue.js - 如何在组件内导出和导入多个功能?Vue.js
- java - 如何在 OpenSSL 中将 jks 文件转换为 p12 文件?
- ember.js - Ember - 我可以将哪些数据类型作为参数传递给 Glimmer 组件?
- imap - courier-imap 中设置的默认密码列表是什么
- python - 使用 TensorFlow 2.0 时,`get_session` 不可用
- pycharm - PyCharm/Python 不从 Anaconda 导入包
- java - 以下代码段之间有什么区别?