Opencv框选黑色字体进行替换(涉及知识点:selectROI,在控制台输入字体大小,颜色,内容替换所选择的区域)

python 复制代码
import cv2
from PIL import Image,ImageDraw,ImageFont
import numpy as np

img_path = '../img/'
img_clean_path = '../img_clean/'
name = 'xiao_ben'
suf = '.png'

img = cv2.imread(img_path+name+suf)
cv2.imshow('original', img)

# 选择ROI
roi = cv2.selectROI(windowName="original", img=img, showCrosshair=False, fromCenter=False)
x, y, w, h = roi
print(roi)

# roi_new = cv2.medianBlur(img[y:y + h, x:x + w],3)
img[y:y + h, x:x + w] = [255,255,255]
img_new = img.copy()
cv2.imwrite(f'{img_clean_path+name}_clean'+suf,img_new)

font_size = int(input('请输入字体大小:'))
cv2.imshow('img_new', img_new)


pil_img = Image.open(f'{img_clean_path+name}_clean'+suf)
draw = ImageDraw.Draw(pil_img)

# 第一个参数是字体文件的路径,第二个是字体大小
font = ImageFont.truetype('simhei.ttf',font_size,encoding='utf-8')

img_new = cv2.imread(f'{img_clean_path+name}_clean'+suf)
roi = cv2.selectROI(windowName="img_new", img=img_new, showCrosshair=False, fromCenter=False)
x, y, w, h = roi
print(roi)

txt = input('请输入文本:')
color_value = ''
color = input('请输入颜色(白、黑):')
if color == '白':
    color_value = (255,255,255)
else:
    color_value = (0,0,0)
draw.text((x,y),txt,color_value,font=font)

# PIL图片转cv2
cv2_text_im = cv2.cvtColor(np.array(pil_img),cv2.COLOR_RGB2BGR)

# 变得可以拉伸 winname 必须要一样,且设置可以拉伸在前面
cv2.namedWindow('tupian', cv2.WINDOW_NORMAL)

# 显示
cv2.imshow('tupian',cv2_text_im)
cv2.imwrite(f'{img_clean_path+name}_clean'+suf,cv2_text_im)


# 退出
cv2.waitKey(0)
cv2.destroyAllWindows()

选择黑色字体,按enter :

黑色字体被去除了:


在控制台输入字体大小和颜色,将输入的文本显示在图片上:

相关推荐
xiangzhihong83 分钟前
AI编程实战:用 TRAE 开发一个写作助手
人工智能
~kiss~15 分钟前
图像处理之膨胀
图像处理·人工智能·计算机视觉
科兽的AI小记36 分钟前
市面上的开源 AI 智能体平台使用体验
人工智能·源码·创业
云雾J视界1 小时前
开源协作2.0:GitHub Discussions+AI重构开发者社区的知识共创生态
人工智能·开源·github·discussions·知识共创·社区知识·ai重构
橘子海全栈攻城狮1 小时前
【源码+文档+调试讲解】基于SpringBoot + Vue的知识产权管理系统 041
java·vue.js·人工智能·spring boot·后端·安全·spring
赋范大模型技术社区1 小时前
OpenAI Agent Kit 全网首发深度解读与上手指南
人工智能·workflow·内置评估
阿里云大数据AI技术1 小时前
云栖实录 | AI 搜索智能探索:揭秘如何让搜索“有大脑”
人工智能·搜索引擎
可触的未来,发芽的智生1 小时前
新奇特:神经网络速比器,小镇债务清零的算法奇缘
javascript·人工智能·python
Aaplloo2 小时前
机器学习作业七
人工智能·机器学习
2501_906519672 小时前
面向边缘计算的轻量化神经网络架构设计与优化
人工智能