博客主页: A_SHOWY
系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理
OpenCV 是一个跨平台开源计算机视觉库,提供了 Python 接口,包含了数字图像处理和计算机视觉方面很多通用算法。
首先需要安装 NumPy,然后再安 装 OpenCV,可以选择两种不同版本: 仅安装主模块包: pip install opencv-python
安装完整包(包括主模块和附加模块) :pip install opencv-c
import cv2
import cv2 as cv
img1 = cv.imread('2.png',1)
img2 = cv.imread('2.png',0)
rows,cows,chn = img1.shape #宽高和通道数
size = img1.size # 像素数目
print('image shape',rows,cows,chn)
print('image size',size)
print('image type',img1.dtype) # dtype 函数类型
#显示图像
cv.imshow('image',img1)
cv.waitKey(0)#无限期的等待一次敲击键,如果这段时间按下任何键,程序将继续运行
cv.destroyAllWindows()#关闭所有打开的窗口
#保存图像
cv.imwrite('cat1.png',img1,[int(cv.IMWRITE_PNG_COMPRESSION),0])
cv.imwrite('cat2.png',img1,[int(cv.IMWRITE_PNG_COMPRESSION),9])
import numpy
import cv2 as cv
img = cv.imread('cat1.png',0)#读取图像,以灰度加载
cv.imshow('image',img)#显示图像
k = cv.waitKey(0)#等待敲击
if(k == 27):#如果是esc
cv.destroyAllWindows()#关掉
elif(k == ord('s')):#如果是s
cv.imwrite('cat3.png',img,[int(cv.IMWRITE_PNG_COMPRESSION),1])#保存
cv.destroyAllWindows()#关掉
import cv2 as cv
img = cv.imread('cat1.png')
#第一种方式
pixel = img[100,100]#取一个像素点
#opencv采用bgr
b = img[100,100,0]
g = img[100,100,1]
r = img[100,100,2]
print("修改blue前:b:{},g:{},r:{}".format(b,g,r))
img[100,100,0] =99
print("修改blue后:b:{},g:{},r:{}".format(b,g,img[100,100,0]))
#第二种方式获取像素值设施像素值
pixel = img.item(100,100,2)
print(pixel)
img.itemset((100,100,2),100)
print(b,g,img[100,100,2])
roi = img[150:250,300:400]#截取150行到250行,300列到400列的像素
img[50:150,200:300] = roi#将截取的roi放到这个区域
cv.imshow('image',img)
cv.waitKey(0)
cv.destroyAllWindows()
蓝色像素置为0:
img[:,:,0] = 0
cv.imshow('image',img)
cv.waitKey(0)
cv.destroyAllWindows()
绿色通道设置为0:
img[:,:,1] = 0
cv.imshow('image',img)
cv.waitKey(0)
cv.destroyAllWindows()
红色通道设置为0
img[:,:,2] = 0
cv.imshow('image',img)
cv.waitKey(0)
cv.destroyAllWindows()
#固定比例缩放
img = cv.imread('cat1.png',1)
cv.imshow('catyuan',img)
cv.waitKey(0)
img = cv.resize(img,None,fx=0.5,fy=0.5)
cv.imshow('catxin',img)
cv.waitKey(0)
#固定长度缩放
img = cv.imread('cat1.png',1)
cv.imshow('catyuan',img)
cv.waitKey(0)
img = cv.resize(img,(300,300))
cv.imshow('catxin',img)
cv.waitKey(0)