Python,OpenCV制作全透明图,简单的图片
Python,OpenCV制作全透明图,简单的图片
- 1. [基本的图片操作方法](https://blog.csdn.net/qq_40985985/article/details/110951435)
- 1.1 效果图
- 1.2 源码
- 2. [Numpy数组操作图像之截取ROI、增加行与列](https://blog.csdn.net/qq_40985985/article/details/110951435)
- 3. 制作透明图
- 3.1 效果图
- 3.2 源码
- 4. [使用Python,OpenCV制作全透明的logo水印,对图像添加水印](https://blog.csdn.net/qq_40985985/article/details/106213908)
1. 基本的图片操作方法
图片的读写与展示;(默认opencv读出来是 3通道的BGR图;透明图实质上是 BGRA的4通道图 )
图片的旋转、无损旋转
图片的放大、缩小、保留宽高比的放大缩小
绘制圆、文字、矩形、正方形、椭圆
1.1 效果图
1.2 源码
import numpy as np
import cv2width = 600
height = 550
img = np.ones((height, width, 4)) * (255, 255, 255, 0)
# cv2.imshow("origin", img)
# cv2.waitKey(0)# 绘制圆
cX = 131.5
cY = 131.5
radius = 91.50425720214844
# - (int(cX), int(cY)) 圆心像素值
# - radius 半径
# - (0, 0, 255) 颜色
# - -1 负数:填充,正数:线条粗细
cv2.circle(img, (int(cX), int(cY)), int(radius), (0, 0, 255), -1)# 绘制文字
# - img 图片
# - "Good job" 文字内容
# - (int(cX - 10), int(cY)) 绘制起始的像素
# - cv2.FONT_HERSHEY_SIMPLEX
# - 0.45 基于字体特定基大小的比例因子
# - (0, 255, 0) 颜色
# - 2 绘制文本的线条粗细
cv2.putText(img, "Good job", (300, 200), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 5)# 绘制矩形
# - img 图片
# - (int(cX),int(cY)) 矩形左上起始点坐标,必须为正数
# - (int(cX) + w, int(cY) + h) 右下角终点
# - (255, 0, 0)
# - 2 正数:线条粗细,负数:填充
w = 60
h = 30
cv2.rectangle(img, (250,250), (250 + w, 250 + h), (255, 0, 0), 3)# 绘制正方形(同矩形,宽度、高度一致)
w = 80
h = 80
cv2.rectangle(img, (100,300), (100 + w, 300 + h), (0, 255, 255), -1)# 绘制椭圆
# - img 图像
# - (int(cX), int(cY)) 中心
# - (150,100) 长轴,短轴
# - angle 角度
# - start_angle 开始角度
# - end_angle 结束角度
# - (90,90,90) 颜色
# - -1 负数:填充,正数:线条粗细
cv2.ellipse(img, (400,400), (150, 100), 0, 0, 300, (0, 0, 0), -1)
cv2.imshow("image", img)
cv2.waitKey(0)
2. Numpy数组操作图像之截取ROI、增加行与列
图片在python中表现为 3通道的BGR,或者4通道的 BGRA
增加行、列;
增加行列效果图(左上左下右上右下)分别为:左侧增加白色像素、右侧增加白色像素、上方增加黑色像素、下方增加黑色像素 效果图
3. 制作透明图
3.1 效果图
3.2 源码
import numpy as np
import cv2
import imutilswidth = 600
height = 550
# 默认生成的是白色的全透明图
img = np.ones((height, width, 4)) * (255, 255, 255, 0)
cv2.imshow("origin", img)
cv2.waitKey(0)# 绘制圆
cX = 131.5
cY = 131.5
radius = 91.50425720214844
# - (int(cX), int(cY)) 圆心像素值
# - radius 半径
# - (0, 0, 255) 颜色
# - -1 负数:填充,正数:线条粗细
cv2.circle(img, (int(cX), int(cY)), int(radius), (0, 0, 255), -1)# 绘制文字
# - img 图片
# - "Good job" 文字内容
# - (int(cX - 10), int(cY)) 绘制起始的像素
# - cv2.FONT_HERSHEY_SIMPLEX
# - 0.45 基于字体特定基大小的比例因子
# - (0, 255, 0) 颜色
# - 2 绘制文本的线条粗细
cv2.putText(img, "Good job", (300, 200), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 5)# 绘制矩形
# - img 图片
# - (int(cX),int(cY)) 矩形左上起始点坐标,必须为正数
# - (int(cX) + w, int(cY) + h) 右下角终点
# - (255, 0, 0)
# - 2 正数:线条粗细,负数:填充
w = 60
h = 30
cv2.rectangle(img, (250, 250), (250 + w, 250 + h), (255, 0, 0), 3)# 绘制正方形(同矩形,宽度、高度一致)
w = 80
h = 80
cv2.rectangle(img, (100, 300), (100 + w, 300 + h), (0, 255, 255), -1)# 绘制椭圆
# - img 图像
# - (int(cX), int(cY)) 中心
# - (150,100) 长轴,短轴
# - angle 角度
# - start_angle 开始角度
# - end_angle 结束角度
# - (90,90,90) 颜色
# - -1 负数:填充,正数:线条粗细
cv2.ellipse(img, (400, 400), (150, 100), 0, 0, 300, (0, 0, 0), -1)
cv2.imshow("image", img)
cv2.waitKey(0)# 保留宽高比的缩放原图为宽度400
img = imutils.resize(img, width=400)# 有像素的地方设置不透明
b, g, r, a = cv2.split(img)
for i in range(img.shape[0]):for j in range(img.shape[1]):if not (b[i][j] > 0 and g[i][j] > 0 and r[i][j] > 0):a[i][j] = 255 # 255不透明,0全透明,有像素的地方设置不透明
image = cv2.merge((b, g, r, a))cv2.imwrite("./images/res.png", image)
cv2.destroyAllWindows()
4. 使用Python,OpenCV制作全透明的logo水印,对图像添加水印
Python,OpenCV制作全透明图,简单的图片相关推荐
- 使用Python,OpenCV制作全透明的logo水印,对图像添加水印
使用Python,OpenCV制作全透明的logo水印,对图像添加水印 1. 效果图 2. OpenCV自己制作一个logo(完全不透明的) 3. 制作水印图源码 4. 添加水印源码 5. 思考: 参 ...
- python opencv 批量将视频转化为图片
单个的视频转换图片参看: python opencv 把视频转为图片 对于多个视频,采用多线程处理方法 video_path为待转换视频的路径,pic_path为输出图像的路径,输出的图像统一保存在p ...
- python opencv制作隐藏图片
前言 隐藏图片就是在白色背景和黑色背景显示出不同的图片,之前qq可以显示,现在好像也不行了,原因就是原来的qq,在发出来默认是白色背景,而点开后是黑色背景.但是这个原理还是挺有意思的,所以简单的研究了 ...
- python标记_Python实现一个简单的图片物体标注工具
# coding: utf-8 """ 物体检测标注小工具 基本思路: 对要标注的图像建立一个窗口循环,然后每次循环的时候对图像进行一次复制, 鼠标在画面上画框的操作.画 ...
- python与人工智能课程设计_人工智能+机器人入门与实战:用树莓派+Python+OpenCV制作计算机视觉机器人...
第 1 章 走近人工智能 1 1.1 初识人工智能 2 1.1.1 人工智能是什么 2 1.1.2 人工智能的发展历程 2 1.1.3 人工智能的应用现状 4 1.2 机器人世界 5 1.2.1 机器 ...
- Python OpenCV:利用鼠标移动缩放图片
一.实现目标 在OpenCV中通过鼠标左键拖拽移动图片,通过鼠标滚轮前后旋转放大缩小图片. 二.实现背景 在前一篇博客在OpenCV中使用滚动条显示大图中发现自己画滚动条移动大图略显繁琐,且缩 ...
- python opencv 中bmp转raw格式图片并展示
python中bmp转raw格式图片并展示 import numpy as np import cv2 img = cv2.imread('data/04/04(1).bmp') # 这里需要我们在当 ...
- Python+OpenCV图像处理(二)——打印图片属性、设置图片存储路径、电脑摄像头的调取和显示...
一. 打印图片属性.设置图片存储路径 代码如下: #打印图片的属性.保存图片位置 import cv2 as cv import numpy as np #numpy是一个开源的Python科学计算库 ...
- python opencv通过4个坐标,剪裁图片(抠图)
一.opencv 裁剪说明 效果展示,要裁剪的图片 裁剪出的单词图像(如下) 这里程序我是用在paddleOCR里面,通过识别模型将识别出的图根据程序提供的坐标(即四个顶点的值)进行抠图的程序(上面的 ...
- python+opencv制作电脑摄像头扫描二维码并自动打开
在生活中我们有时候会遇到用电脑扫描更方便的情形,但是奈何现在的电脑程序都没有提供扫描二维码的功能,所以我花了半天的时间专门做了一个电脑扫描二维码程序. 实现目标:利用电脑摄像头识别二维码中的内容并自动 ...
最新文章
- Linux ext2文件系统小结
- yum安装软件包提示Error Downloading Packages解决方法
- 【年度学术大会合集】SIGGRAPH,KDD,AAAI,NIPS…这些你想参加的会议
- 卸载 PyCharm!这才是 Python 小白的最理想的 IDE
- html div 水平垂直居中显示,利用CSS实现div水平垂直居中
- c语言中打印ipv6地址,c-来自任何有效地址的ipv4和ipv6
- PHP程序员五大兵器排行
- Eclipse + Gradle实现APK分包
- js navigator platform
- C# RestSharp的http连接
- 计算机中if函数的使用方法,excelif函数多层嵌套的使用方法
- Swing Jtable 设置单元格不可编辑
- 多个 Excel 批量设置页眉页脚
- java 并发 csp_CSP与并发编程
- linux getfattr中文乱码,Linux下快速解析nf_conntrack
- Seq2Seq模型中的集束搜索(Beam Search)
- 判断Stack为空的方法之empty()与isEmpty()
- C语言学习经典书籍推荐
- jQuery学习-day03
- 【页面脚本错误快速解决方案】