## 导包

import cv2
import numpy as np
from PIL import Image, ImageDraw, ImageFont

## 读取图片

img = cv2.imread('12323.bmp',cv2.IMREAD_GRAYSCALE)

## 显示函数

def show(img):cv2.namedWindow('name',cv2.WINDOW_NORMAL)cv2.imshow('name',img)cv2.waitKey()cv2.destroyAllWindows()

## 画方框

def drawREC(point1,point2,textcolor):#cv2.rectangle(img,(x1, y1), (x2, y2), color, thickness, lineType, shift)#txt = '裂缝'cv2.rectangle(img,point1,point2,textcolor,3)#cv2.putText(img, txt, (2050,124), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 2)

## 写入中文函数

(参考博文)

##由于textput不能使用汉字,使用此函数添加中文
def cv2AddChineseText(img, text, position, textColor=(0, 255, 0), textSize=30):  if (isinstance(img, np.ndarray)):  # 判断是否OpenCV图片类型img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))# 创建一个可以在给定图像上绘图的对象draw = ImageDraw.Draw(img)# 字体的格式fontStyle = ImageFont.truetype("simsun.ttc", textSize, encoding="utf-8")# 绘制文本draw.text(position, text, textColor, font=fontStyle)# 转换回OpenCV格式return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)

## 方框位置

a = np.array([[ 558,  811,  596,  851],[ 696,  804,  778,  884],[ 539,  912,  576,  956],[ 532,  722,  560,  749],[ 753,  947,  792,  965],[ 601,  640,  664,  702],[ 746,  986,  777, 1012],[ 556, 1014,  584, 1055],[ 812,  276,  877,  305],[ 553,  764,  599,  795],[ 680, 1023,  744, 1096]])b = np.array([4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4])

## 坐标变换(根据图片尺寸可选)

##图像变换坐标
a[:,0] = a[:,0] - 528
a[:,2] = a[:,2] - 528
a = a * (4096/1408)
a = a.round()
a = a.astype(int)

## 中文填入

for i in range(len(a)):point1 = (a[i][1],a[i][0])point2 = (a[i][3],a[i][2])if b[i] == 4:img=cv2AddChineseText(img,"***", (a[i][1],a[i][0]),(0, 255, 255), 30)drawREC(point1, point2,(255,255,0))if b[i] == 2:img=cv2AddChineseText(img,"***", (a[i][1],a[i][0]),(255, 255, 0), 30)drawREC(point1, point2,(0,255,255))if b[i] == 3:img=cv2AddChineseText(img,"***", (a[i][1],a[i][0]),(177, 255, 48), 30)drawREC(point1, point2,(48,255,177))if b[i] == 1:img=cv2AddChineseText(img,"***", (a[i][1],a[i][0]),(108, 200, 48), 30)drawREC(point1, point2,(48,200,108))
show(img)

## 保存图片

cv2.imwrite('7.png',img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])

cv2 给图片加框框相关推荐

  1. PyQt5(一):加载图片画框框并保存

    PyQt5(一):加载图片画框框并保存 环境 设计界面 重写QLabel 主函数 效果 参考 环境 Win10 PyCharm2019 社区版 PyQt5 Qt Designer 设计界面 使用Qt ...

  2. opencv给图片加中文水印

    import cv2 import os import numpy as np from PIL import Image,ImageFont,ImageDraw#给图片加水印 def create_ ...

  3. 【Opencv】基于python-opencv的CV2实现图片OCR前的扫描摆正OCR识别【代码实现】

    基于python-opencv的CV2实现图片OCR前的扫描摆正OCR识别[代码实现] 实验目的 代码实现 预处理(注意Resize图像) 轮廓检测(找到矩形) 透视变换(摆正图像) OCR识别文字 ...

  4. 第二节 opencv图片加水印

    通过opencv对图片加水印 (对规格不一样的图片进行叠加,局部叠加) ROI确定图片叠加区域 对图片进行灰度处理–黑化–白化,效果如下: 详细代码如下: # -*- coding:utf-8 -*- ...

  5. 利用python实现深度学习生成对抗样本模型,为任一图片加扰动并恢复原像素的全流程记录

    利用python实现深度学习生成对抗样本,为任一图片加扰动并恢复原像素 一.前言 (一)什么是深度学习 (二)什么是样本模型 (三)什么是对抗样本 1.对抗的目的 2.谁来对抗? 3.对抗的敌人是谁? ...

  6. 椒盐噪声及高斯噪声图片加噪python实现(附代码)

    椒盐噪声及高斯噪声图片加噪python实现(附代码) 写在前面 这个博客会记录我最近学习的笔记,算是成长记录啦,如果有错误的地方还请指出,这也是学习的过程呀! 椒盐噪声 椒盐噪声又称为脉冲噪声,它是一 ...

  7. [opencv 从零开始 5 ] python 将图片加密解密,图片加隐藏水印,提取水印。

    目录 python 将图片加密解密 原理 代码 效果 python 给图片添加隐藏水印 原理: 代码: 效果: python 将图片加密解密 原理 O代表原始图像,key代表密钥图像,c代表加密后图像 ...

  8. python显示文字框_在Python 中实现图片加框和加字的方法

    第一步:安装opencv-python rpm -ivh opencn-python-2.4.5-3.el7.ppc64le.rpm 第二步:引用cv2 import cv2 第三步:读入图片,必须是 ...

  9. golang实现给图片加水印

    2019独角兽企业重金招聘Python工程师标准>>> 最近跟在写golang图片加水印的方法,这里用的是一些基本的功能. package mainimport ("fmt ...

最新文章

  1. U3D 扩展方法 Dotween tolua
  2. wxWidgets:wxRegKey类用法
  3. linux apr文件解压失败,Apache编译安装提示configure: error: APR not found错误解决方法...
  4. mysql正则表达式配置_G. MySQL正则表达式
  5. 【数据库】Mysql的REPLACE()函数替换字符串
  6. Q93:PLY文件对应图形法向量反向问题——以bunny10K为例
  7. 无线通信原理与应用笔记
  8. 计算机系固态硬盘机械硬盘,固态硬盘和机械硬盘可以在一起使用吗?
  9. 关于mis系统思维导图
  10. [Qt] 使用LZMA SDK完成C++的7z格式文件压缩和解压缩
  11. 收藏 | 史上最详细的 Landsat 1-9 系列数据集介绍~
  12. vue开发网站seo优化方法
  13. 1.4 矩阵方程(第1章 线性代数中的线性方程组)
  14. matplotlib sinx cosx 图像
  15. elementUI 表格合并单元格-多层级-合并行
  16. 2001-2022年全国各城市风速数据(逐日、逐月、逐年)
  17. 百度网盘视频倍速播放
  18. Plant simulation16.0汽车总装车间仿真第二步:仿真模型搭建Part01——滑橇线物流输送
  19. 文件管理-Linux系统压缩打包
  20. Impinj及Accruent医疗合作推出医疗设备跟踪方案

热门文章

  1. 如何解决:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
  2. Scratch编程与数学结合-蜗牛爬井问题
  3. 数据中心的等级 数据中心的分层
  4. Node.js文档和教程
  5. C/C++ 函数(最大公约数)
  6. 「游戏开发」游戏服务器端开发的一些经验
  7. 计算二维紧束缚模型费米面和nesting程序新思路
  8. 根据excel列动态创建mysql表_根据数据库字段动态生成excel模版下载,上传模版获取数据存入数据库(poi 反射)...
  9. 为啥不用美元作为IPFS体系的激励?
  10. 考华为云认证的必要条件、注意事项