作者:减肥瘦身666 | 来源:互联网 | 2023-10-13 09:37
本文由编程笔记#小编为大家整理,主要介绍了opencv相关的知识,希望对你有一定的参考价值。
#-*- coding:utf8-*-
#读取图片
‘‘‘
1.cv2.imread(文件名,属性)
属性:指定图像用哪一种方式读取文件
cv2.IMREAD_COLOR:读入彩色图像,默认参数,Opencv 读取彩色图像为BGR模式 !!!注意
cv2.IMREAD_GRAYSCALE:读入灰度图像。
2.
cv2.imshow(窗口名,图像文件)显示图像 可以创建多个窗口
3.
cv2.waitKey()键盘绑定函数
函数等待待定的几毫秒,看是否有键盘输入
4.
cv2.namedWindow(窗口名,属性) 创建一个窗口
属性:指定窗口大小模式
cv2.WINDOW_AUTOSIZE:根据图像大小自动创建大小
cv2.WINDOW_NORMAL:窗口大小可调整
5.
cv2.destoryAllWindows(窗口名) 删除任何建立的窗口
‘‘‘
import cv2
img=cv2.imread(‘sd.jpg‘, cv2.IMREAD_COLOR)
cv2.namedWindow(‘image‘,cv2.WINDOW_NORMAL)
cv2.imshow(‘image‘,img)
cv2.waitKey(0)
cv2.destoryAllWindows()
#cv2.imwrite(保存图像名,需要保存的图像) 保存图像
img=cv2.imread(‘sd.jpg‘,cv2.IMREAD_COLOR)
cv2.imshow(‘image‘,img)
k=cv2.waitKey(0)
if k==27: #等待ESC键
cv2.destoryAllwindows()
elif k==ord(‘s‘): #等待‘s‘键来保存和退出
cv2.imwrite(‘dehua.jpg‘,img)#文件名为英文
cv2.destoryAllWindows()
#对于图像的一些操作
import cv2
img=cv2.imread(‘sd.jpg‘,cv2.IMREAD_COLOR)
print(img.shape)#(300, 375, 3)
print(img.size)#337500
print(img.dtype)#uint8
#在处理图片时,将一些信息直接以文字的形式输出在图片上
cv2.putText(照片/添加的文字/左上角坐标/字体/字体大小/颜色/字体粗细)
img=cv2.imread(‘sd.jpg‘,cv2.IMREAD_COLOR)
cv2.putText(img,‘there 0 error(s):‘,(50,150),cv2.FONT_HERSHEY_COMPLEX,6,(0,0,255),25)
cv2.imshow(‘image‘,img)
cv2.waitKey(0)
#缩放图片
‘‘‘
实现缩放图片并保存,在使用OpenCV时常用的操作。cv2.resize()支持多种插值算法,默认使用cv2.INTER_LINEAR,缩小最适合使用:cv2.INTER_AREA,放大最适合使用:cv2.INTER_CUBIC或cv2.INTER_LINEAR。
res=cv2.resize(image,(2*width,2*height),interpolation=cv2.INTER_CUBIC)
或者:
res=cv2.resize(image,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)
此处None本应该是输出图像的尺寸,因为后边设置了缩放因子
‘‘‘
height,image",image)
cv2.waitKey(0)
cv2.destoryALLWindows()
# 通道的拆分/合并处理
‘‘‘
有时需要对BGR三个通道分别进行操作。这时需要将BGR拆分成单个通道。同时有时需要把独立通道的图片合并成一个BGR图像。
使用OpenCV库函数版本
‘‘‘
import cv2
import numpy as np
import matplotlib.pyplot as plt
image=cv2.imread(‘pitt1.jpg‘)
rows,cols,ch=image.shape
#拆分通道,cv2.split()是一个比较耗时的操作。只有需要时使用,尽量Numpy
b,g,r=cv2.split(image)
print (b.shape)
#(768,1024)
#合并通道
image=cv2.merge(b,g,r)