6、opencv 绘制文本及中文文本、异或非位运算 2022-08-22

绘制文本及中文文本

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

# 创建纯白图像
img = np.full((1000,1000,3),fill_value=255,dtype=np.uint8)

# 第三个参数可选,字体样式,没有中文
cv2.putText(img,"Hello Open-cv",(400,400),cv2.FONT_HERSHEY_COMPLEX,2,(0,0,255))


# 使用Pillow写中文
# 导入字体文件(windows系统导入)
# 文件夹路径: C:\Windows\Fonts
font = ImageFont.truetype("./msyh.ttc",15)
img = Image.fromarray(img)
draw = ImageDraw.Draw(img)
draw.text((250,400),"你好",font=font,fill=(0,255,0,0))


# 转化成np格式
img = np.array(img)
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

异或非位运算

# opencv中的逻辑运算就是图片对应位置进行与或非、异或
import cv2
import numpy as np

img0_path = "./R-C.jpg"
img1_path = "./108.jpg"

# 读取图片
img0 = cv2.imread(img0_path)
img1 = cv2.imread(img1_path)

# 非操作(255减被操作像素值)
cv_not = cv2.bitwise_not(img0)
img = np.hstack((img0,cv_not))

# and操作(两张图片大小要一致)
# 将像素值进行二进制转化之后再进行and操作,然后返回十进制(像素值会变小)
new_img1 = img1[:890,:600]
cv_and = cv2.bitwise_and(new_img1,img0)
print(new_img1[:3, :3], img0[:3, :3],cv_and[:3,:3])
print(134&105)

# 或操作
# 操作原理同and(像素值会变大)
cv_or = cv2.bitwise_or(new_img1,img0)
print(new_img1[:3, :3], img0[:3, :3],cv_or[:3,:3])
print(134|105)

# 异或操作
cv_xor = cv2.bitwise_xor(new_img1,img0)
print(new_img1[:3, :3], img0[:3, :3],cv_xor[:3,:3])
print(134|105)

# 展示图像
cv2.imshow("img",cv_xor)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值