当前位置: 首页 > news >正文

OpenCV的关于图片的一些运用

一、读取图片

通过cv2库中的imread()方法读取图片

代码:

import cv2
a = cv2.imread('1.png')
cv2.imshow('tu',a)
b = cv2.waitKey(4000) # 图片执行时间
cv2.destroyAllWindows() # 关闭所有端口
print("图像形状(shape):",a.shape)
print("图像数据类型(dtype):",a.dtype)
print("图像大小(size):",a.size)

二、读取图片的灰度图

通过cv2.IMREAD_GRAYSCALE将图片改为灰度图

代码:

''' 读取图片的灰度图 '''
import cv2
a = cv2.imread('1.png',cv2.IMREAD_GRAYSCALE) # 对图片执行灰度设置
cv2.imshow('tu',a)
b = cv2.waitKey(4000)
cv2.destroyAllWindows()
print("图像形状(shape):",a.shape)
print("图像数据类型(dtype):",a.dtype)
print("图像大小(size):",a.size)
'''图片保存'''
cv2.imwrite('2.png',a)

三、ROI(对图片进行切片)

将a软复制给b再对高和宽进行切分,切出一块图片出来

代码:


import cv2
a = cv2.imread('1.png')
b = a[20:200,100:300]
cv2.imshow('yuantu',a)
cv2.imshow('qiepian',b)
cv2.waitKey(0)
cv2.destroyAllWindows()

四、读取RGB颜色通道

代码:

import cv2
a = cv2.imread('1.png')
# 第一种方法(分离颜色通道)
a1 = a[:,:,0] # B
a2 = a[:,:,1] # G
a3 = a[:,:,2] # R
# 第二种方法(分离颜色通道)
b,g,r = cv2.split(a)
'''效果一样'''
cv2.imshow('b',a1)
cv2.imshow('g',a2)
cv2.imshow('r',a3)
# 设置窗口显示时间,单位ms
cv2.waitKey(10000)
cv2.destroyAllWindows()

五、图片打码

代码:

import numpy as np
import cv2
a = cv2.imread('1.png')
a[100:200,200:300] = np.random.randint(0,256,(100,100,3)) # 矩阵赋值必须是相同大小
cv2.imshow('masaike',a)
cv2.waitKey(100000)
cv2.destroyAllWindows()

六、图片组合

代码:

import cv2
a = cv2.imread('b.png')
b = cv2.imread('c.png')
b[0:300,0:250] = a[0:300,0:250]
cv2.imshow('b',b)
cv2.imshow('a',a)
cv2.waitKey(100000)
cv2.destroyAllWindows()

七、图片缩放

代码:

import cv2
a = cv2.imread('1.png')
a_new = cv2.resize(a,(200,600)) # 将图片格式改为高为200宽为600
a_new = cv2.resize(a,dsize=None,fx=0.5,fy=0.5) #将图片高和宽缩为原来的一半
cv2.imshow('a',a)
cv2.imshow('a_new',a_new)
cv2.waitKey(10000)
cv2.destroyAllWindows()

http://www.dtcms.com/a/318964.html

相关文章:

  • 一个基于 select 实现的多路复用 TCP 服务器程序:
  • Opencv-管理图片
  • 计算机视觉--opencv(代码详细教程)
  • ansible-playbook之获取服务器IP存储到本地文件
  • Spring事务失效场景?
  • 光纤滑环 – 光纤旋转接头(FORJ)- 杭州驰宏科技
  • 科技云报到:热链路革命:阿卡 CRM 的 GTM 定位突围
  • 芯谷科技--高效噪声降低解决方案压缩扩展器D5015
  • 全球化2.0 | 泰国IT服务商携手云轴科技ZStack重塑云租赁新生态
  • 安全守护,温情陪伴 — 智慧养老产品上新
  • Element Plus实现分页查询
  • 码头岸电系统如何保障供电安全?安科瑞绝缘监测及故障定位方案解析
  • Rust爬虫与代理池技术解析
  • NAS技术在县级融媒体中心的架构设计与安全运维浅析
  • VSCode ssh一直在Setting up SSH Host xxx: Copying VS Code Server to host with scp等待
  • 支付宝小程序商城怎么搭?ZKmall开源商城教你借力蚂蚁生态做增长
  • 【Agent】ReAct:最经典的Agent设计框架
  • 【pytorch(06)】全连接神经网络:基本组件认知,线性层、激活函数、损失函数、优化器
  • Django 表单:深度解析与最佳实践
  • 高性能分布式通信框架:eCAL 介绍与应用
  • 解锁高效开发:AWS 前端 Web 与移动应用解决方案详解
  • 区块链技术原理(2) -数据结构
  • 云平台运维工具 ——AWS 原生工具
  • 告别Cursor!最强AI编程辅助Claude Code安装到使用全流程讲解
  • MySQL面试题及详细答案 155道(061-080)
  • 【图文教程】三步用Cpolar+JuiceSSH实现手机远程连接内网Linux虚拟机
  • 平台服务器被入侵,使用WAF能防范吗?
  • 机器学习——04 逻辑回归
  • LoRaWAN的网络拓扑
  • graalvm初探