opencv - 获取字符/三角形失败
问题描述
我想从酒吧读取字符/三角形。
首先,我将具有不同值的 Otsu 应用于此条,但无法正确获取所有字符。我也尝试了三角形检测,但无法再次提取。人物的颜色各不相同。有人可以提供另一种方法/算法来提取它们吗?另外,有没有办法进行颜色扫描,我的意思是尝试所有颜色,然后如果存在,提取(从黑白背景图像中提取所有颜色)?
ret,im1 = cv2.threshold(crop_img,0,255,cv2.THRESH_OTSU)
挑战,最后一个最难
我得到的最好的一个不成功:
解决方案
您的问题最好使用分色来解决。您可以使用该inrange()
功能(docs)。这通常在 HSV 颜色空间中做得最好。下面的代码显示了如何做到这一点。
您可以使用此脚本查找进行分色所需的值范围。它还有一个示例图像,可以帮助您了解 HSV 的工作原理。
代码:
import numpy as np
import cv2
# load image
img = cv2.imread("image.png")
# Convert BGR to HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# define range of HSV-color
lower_val = np.array([0,50,80])
upper_val = np.array([179,255,255])
# purple only
#lower_val = np.array([140,50,80])
#upper_val = np.array([170,255,255])
# Threshold the HSV image to get a mask that holds the markings
mask = cv2.inRange(hsv, lower_val, upper_val)
# create an image of the markings with background excluded
img_masked = cv2.bitwise_and(img,img,mask=mask)
# display image
cv2.imshow("result", img_masked)
cv2.waitKey(0)
cv2.destroyAllWindows()
推荐阅读
- javascript - 我的变量在 javascript 和 ajax 中失去了它的价值
- ibm-mq - 如何安装 WebSphere MQ 服务器?
- docker - Shell 脚本子进程交互式终端会话
- javascript - 不显示任何棱角材料
- function - Delphi - 如何从函数返回不同的类型
- python - 拆分字典以显式调用 'Key' : dict.keys() 和 "Value' : dict.values() 用于进入 API 的 JSON 数据
- r - 使用 R 绘制未集成到 1 的自定义函数的 PDF
- virtual - 推出虚拟卡的客户需要遵循哪些 PCI 准则?
- svg - 将objectBoundingBox坐标中的线性渐变转换为userSpaceOnUse坐标的更通用的函数
- delphi - 如何从 Delphi 的 Richedit 中获得首次输出?