美文网首页
opencv-python:图像创建于操作,包括ROI与mask

opencv-python:图像创建于操作,包括ROI与mask

作者: 我的小小笔尖 | 来源:发表于2021-12-13 11:57 被阅读0次

python 代码:

#coding=utf-8

import cv2 as cv
import numpy as np

# 定义宽、高、通道数
width, height, channels = 200, 100, 3
# 创建3通道图像
canvas = np.zeros((height, width, channels), dtype="uint8")
# 写上红色字母 Q
cv.putText(canvas, 'Q', (65, 75), cv.FONT_HERSHEY_COMPLEX, 3.0, (0, 0, 255), 10)
# 保存图像
cv.imwrite('temp/canvas.jpg', canvas)

# 将图像变为灰度图
canvas_gray = cv.cvtColor(canvas, cv.COLOR_BGR2GRAY)
# 保存灰度图
cv.imwrite("temp/canvas_gray.jpg", canvas_gray)
# 将灰度图变为二值图(像素值大于1的变为白色,其他变为黑色)
ret, canvas_binary = cv.threshold(canvas_gray, 1, 255, cv.THRESH_BINARY)
# 保存二值图
cv.imwrite("temp/canvas_binary.jpg", canvas_binary)
# 将二值图里的像素值按位反向(白色变为黑色,黑色变为白色)
canvas_binary_inv = cv.bitwise_not(canvas_binary)
# 保存反向二值图
cv.imwrite("temp/canvas_binary_inv.jpg", canvas_binary_inv)

# 将图像背景透明(增加alpha通道)
b, g, r = cv.split(canvas)
rgba = [b, g, r, canvas_binary]
canvas_alpha = cv.merge(rgba, 4)
cv.imwrite("temp/canvas_alpha.png", canvas_alpha) #保存成png格式

# 读取彩色图片
easter = cv.imread('easter.jpg') # 1920*1534
# 将图片缩放到原来的20%
easter_resize = cv.resize(easter, (0,0), fx=0.2, fy=0.2, interpolation=cv.INTER_CUBIC)
# 在缩放后的彩色图片上画一个白色矩形
cv.rectangle(easter_resize,(50,150),(250,250),(255,255,255),0)
# 保存缩放后的彩色图片
cv.imwrite('temp/easter_resize.jpg', easter_resize)
# 裁剪缩放后的彩色图片
easter_crop = easter_resize[150:150+height, 50:50+width].copy()
# 保存裁剪的彩色图片
cv.imwrite("temp/easter_crop.jpg", easter_crop)

# 在彩色图片中划定roi的范围
roi = easter_resize[150:150+height, 50:50+width]
# 将roi填充到二值图中(只有白色区域-像素值不为0,才会填充)
easter_roi = cv.bitwise_and(roi, roi, mask=canvas_binary)
cv.imwrite("temp/easter_roi.jpg", easter_roi)
canvas.jpg canvas_gray.jpg canvas_binary.jpg canvas_binary_inv.jpg canvas_alpha.png easter.jpg easter_resize.jpg easter_crop.jpg easter_roi.jpg

相关文章

网友评论

      本文标题:opencv-python:图像创建于操作,包括ROI与mask

      本文链接:https://www.haomeiwen.com/subject/dnfcfrtx.html