当前位置: 首页 > 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.lryc.cn/news/612681.html

相关文章:

  • 数据分析进阶——53页跨境数据分析【附全文阅读】
  • 僵尸进程问题排查
  • Mac+Chrome滚动截图
  • localforage的数据仓库、实例、storeName和name的概念和区别
  • OpenAI 开源模型 gpt-oss 正式上线微软 Foundry 平台
  • [Oracle] CEIL()函数
  • 利用微软SQL Server数据库管理员(SA)口令为空的攻击活动猖獗
  • MySQL中的DDL(一)
  • 直连微软,下载速度达18M/S
  • [2402MT-A] Redbag
  • 从周末去哪儿玩到决策树:机器学习算法的生活启示
  • 《深入解析缓存三大难题:穿透、雪崩、击穿及应对之道》
  • Mysql数据仓库备份脚本
  • 突破距离桎梏:5G 高清视频终端如何延伸无人机图传边界
  • 【完整源码+数据集+部署教程】无人机自然场景分割系统源码和数据集:改进yolo11-RVB
  • 计算机网络1-4:计算机网络的定义和分类
  • 【网络编程】一请求一线程
  • 云原生安全挑战与治理策略:从架构思维到落地实践
  • PyTorch + PaddlePaddle 语音识别
  • 从BaseMapper到LambdaWrapper:MyBatis-Plus的封神之路
  • day44 力扣1143.最长公共子序列 力扣1035.不相交的线 力扣53. 最大子序和 力扣392.判断子序列
  • WEB开发-第二十七天(PHP篇)
  • 笔试——Day31
  • Linux(17)——Linux进程信号(下)
  • 【42】【OpenCV C++】 计算图像某一列像素方差 或 某一行像素的方差;
  • uniapp vue3中使用pinia 和 pinia持久化(没有使用ts)
  • SQLite 创建表
  • VUE+SPRINGBOOT从0-1打造前后端-前后台系统-文章列表
  • [失败记录] 使用HBuilderX创建的uniapp vue3项目添加tailwindcss3的完整过程
  • 《深入浅出 Django ORM:设计理念与惰性查询实现详解》