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制作全透明图,简单的图片相关推荐

  1. 使用Python,OpenCV制作全透明的logo水印,对图像添加水印

    使用Python,OpenCV制作全透明的logo水印,对图像添加水印 1. 效果图 2. OpenCV自己制作一个logo(完全不透明的) 3. 制作水印图源码 4. 添加水印源码 5. 思考: 参 ...

  2. python opencv 批量将视频转化为图片

    单个的视频转换图片参看: python opencv 把视频转为图片 对于多个视频,采用多线程处理方法 video_path为待转换视频的路径,pic_path为输出图像的路径,输出的图像统一保存在p ...

  3. python opencv制作隐藏图片

    前言 隐藏图片就是在白色背景和黑色背景显示出不同的图片,之前qq可以显示,现在好像也不行了,原因就是原来的qq,在发出来默认是白色背景,而点开后是黑色背景.但是这个原理还是挺有意思的,所以简单的研究了 ...

  4. python标记_Python实现一个简单的图片物体标注工具

    # coding: utf-8 """ 物体检测标注小工具 基本思路: 对要标注的图像建立一个窗口循环,然后每次循环的时候对图像进行一次复制, 鼠标在画面上画框的操作.画 ...

  5. 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 机器 ...

  6. Python OpenCV:利用鼠标移动缩放图片

    一.实现目标   在OpenCV中通过鼠标左键拖拽移动图片,通过鼠标滚轮前后旋转放大缩小图片. 二.实现背景   在前一篇博客在OpenCV中使用滚动条显示大图中发现自己画滚动条移动大图略显繁琐,且缩 ...

  7. python opencv 中bmp转raw格式图片并展示

    python中bmp转raw格式图片并展示 import numpy as np import cv2 img = cv2.imread('data/04/04(1).bmp') # 这里需要我们在当 ...

  8. Python+OpenCV图像处理(二)——打印图片属性、设置图片存储路径、电脑摄像头的调取和显示...

    一. 打印图片属性.设置图片存储路径 代码如下: #打印图片的属性.保存图片位置 import cv2 as cv import numpy as np #numpy是一个开源的Python科学计算库 ...

  9. python opencv通过4个坐标,剪裁图片(抠图)

    一.opencv 裁剪说明 效果展示,要裁剪的图片 裁剪出的单词图像(如下) 这里程序我是用在paddleOCR里面,通过识别模型将识别出的图根据程序提供的坐标(即四个顶点的值)进行抠图的程序(上面的 ...

  10. python+opencv制作电脑摄像头扫描二维码并自动打开

    在生活中我们有时候会遇到用电脑扫描更方便的情形,但是奈何现在的电脑程序都没有提供扫描二维码的功能,所以我花了半天的时间专门做了一个电脑扫描二维码程序. 实现目标:利用电脑摄像头识别二维码中的内容并自动 ...

最新文章

  1. Linux ext2文件系统小结
  2. yum安装软件包提示Error Downloading Packages解决方法
  3. 【年度学术大会合集】SIGGRAPH,KDD,AAAI,NIPS…这些你想参加的会议
  4. 卸载 PyCharm!这才是 Python 小白的最理想的 IDE
  5. html div 水平垂直居中显示,利用CSS实现div水平垂直居中
  6. c语言中打印ipv6地址,c-来自任何有效地址的ipv4和ipv6
  7. PHP程序员五大兵器排行
  8. Eclipse + Gradle实现APK分包
  9. js navigator platform
  10. C# RestSharp的http连接
  11. 计算机中if函数的使用方法,excelif函数多层嵌套的使用方法
  12. Swing Jtable 设置单元格不可编辑
  13. 多个 Excel 批量设置页眉页脚
  14. java 并发 csp_CSP与并发编程
  15. linux getfattr中文乱码,Linux下快速解析nf_conntrack
  16. Seq2Seq模型中的集束搜索(Beam Search)
  17. 判断Stack为空的方法之empty()与isEmpty()
  18. C语言学习经典书籍推荐
  19. jQuery学习-day03
  20. 【页面脚本错误快速解决方案】

热门文章

  1. 程序员是做什么的?怎么成为程序员?
  2. 软件获取imei和imsi_获取设备信息(imei、imsi、uuid)的调整使用plus.device.getInfo方法的说明...
  3. 怎么进行企业工商信息查询?
  4. 什么是电感器与电感?
  5. js高级程序设计note
  6. 计算机病毒和恶意软件管理制度,白城师范学院计算机病毒防治管理制度
  7. 太容易的钱,最让人心慌
  8. 云计算是什么?新手学习云计算的学习路线
  9. textarea字数实时统计方案
  10. 数组除重和运用随机点名的简单运用