opencv变换底色

打算实现adas的一个报警显示,白色字体变成红色,可是字体是中文,不可以用cv的函数。先放个图片看看最后的效果。
在这里插入图片描述

import cv2

path = r"C:\Users\17230\Desktop\123.png"
img = cv2.imread(path)

# 先将白底黑字(ppt里面的截图)转换成黑底白字
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
thred3,img= cv2.threshold(img_gray,254,255,cv2.THRESH_TOZERO_INV)
img = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)

# 如果白色字体太细,可以进行膨胀
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3))
img = cv2.dilate(img2,kernel,iterations = 1)

# 再将白字变成红字
b,g,r = cv2.split(img)
b[20:140] = 0
g[20:140] = 0
img = cv2.merge((b,g,r))

cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

找切片位置:在通道分离之后设置断点调试,查看某一个通道在什么位置开始变色的,在什么位置结束变色
在这里插入图片描述
另外的思路就是,直接查看图像像素数值,查看感兴趣区域像素分布,根据这个分布设置最大值和最小值,大于最大值的直接变为0(或者其他,变蓝色底或者其他底色),小于最小值同样

import cv2

path = r"C:\Users\17230\Desktop\123.png"
img = cv2.imread(path)

# 括号里面的计算结果为零一矩阵,再乘以原图像
img = (img<200)*img

cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值