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 :

黑色字体被去除了:


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

相关推荐
Elastic 中国社区官方博客9 分钟前
使用 Elasticsearch 和 Jina 进行 AI 视频搜索:精准找到你需要的视频片段秒数
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
qq_1998868710 分钟前
第8板块·第3节:设备间拷贝与点对点(P2P)传输
c++·人工智能·gpu算力·cuda
Omics Pro14 分钟前
新型条件传输模型!虚拟细胞扰动预测
数据库·人工智能·算法·机器学习·自然语言处理
武子康18 分钟前
两台机器跑 vLLM,什么时候才值得引入 Ray?
人工智能·llm·agent
AI技趣星球18 分钟前
ChatGPT 杀进 Word:免费版可用,AI 办公落地进入深水区
人工智能
Raas10021 分钟前
MAI Gateway(魔芋企业级AI网关)功能全解:AI网关支持流式输出吗?一文看懂AI网关能力矩阵
大数据·人工智能·gateway·mai gateway·企业级网关
wangqiaowq22 分钟前
AI-Native(AI 原生) 指从产品、架构、交互到组织流程,从第一天起就以 AI 为核心来设计,而不是在传统软件上后加一个 AI 功能。
人工智能
AI深栈24 分钟前
第 14 章 · LangGraph4j 入门:AI Agent 什么时候该上状态图
java·人工智能
学电子她就能回来吗25 分钟前
把自然语言变成可制造 CAD:开源 SolidWorks Automation Skill 的工程化实践
人工智能·python·自动化·solidworks·mcp
广西生活网27 分钟前
启元机器人接入腾讯 WorkBuddy 具身智能打通虚实服务新链路
人工智能