树苗网站源码,怎么给网站制作二维码,中国招标建设信息网站,网站发布内容是否过滤图片操作cv2.namedWindow() 创建命名窗口cv2.imshow()显示窗口cv2.destroyAllwindws()摧毁窗口cv2.resizeWindow()改变窗口大小cv2.waitKey()等待用户输入cv2.imread()读取图像img.shape 图片h、w、c#xff08;高、宽、通道数import cv2 # opencv读取的格式是BGR
import m…图片操作cv2.namedWindow() 创建命名窗口cv2.imshow()显示窗口cv2.destroyAllwindws()摧毁窗口cv2.resizeWindow()改变窗口大小cv2.waitKey()等待用户输入cv2.imread()读取图像img.shape 图片h、w、c高、宽、通道数
import cv2 # opencv读取的格式是BGR
import matplotlib.pyplot as plt
import numpy as np# cv2.IMREAD_COLOR 彩色图像
# cv2.IMREAD_GRAYSCALE 灰度图像
img cv2.imread(img1.jpg,cv2.IMREAD_COLOR)# 图像显示
cv2.imshow(img1,img)
# 等待时间毫秒级0表示任意键中止
cv2.waitKey(0)
cv2.destroyAllWindows() 视频操作cv2.VideoCapture() 可以捕获摄像头用数字来控制不同的设备例如0,1如果是视频文件直接指定好路径即可。
vc cv2.VideoCapture(video1.mp4)
# 检查是否打开正确
if vc.isOpened():open,frame vc.read() # 每次读取1帧再read再读取下一帧# 返回的第一个值是bool类型第二个值是当前这一帧的图像(三维数组)
else:open False
# 通常情况下
while open:ret,frame vc.read()if frame is None:breakif ret True:gray cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # cv2.cvtColor(图像转换方法)cv2.imshow(result,gray)if cv2.waitKey(10) 0xFF 27: # 27是esc键break
vc.release()
cv2.destroyAllWindows()ROIRegion Of Interest 直译为感兴趣的区域作用为截取部分图像数据
# ROI
img cv2.imread(img1.jpg)
if img is not None:img_partA img[0:200,0:200] # ROI操作img[h,w]# 本质是操作数组cv2.imshow(img1,img_partA)cv2.imshow(img2,img)cv2.waitKey(0)cv2.destroyAllWindows()颜色通道提取
b,g,r cv2.split(img) # 提取bgr
img cv2.merge(b,g,r) # 通过bgr组合出一张图像只保留R通道显示
img cv2.imread(img1.jpg,cv2.IMREAD_COLOR)
b,g,r cv2.split(img)
# 只保留R [h,w,c] c表示通道根据bgr索引b为0g为1r为2
cur_img img.copy()
cur_img[:,:,0] 0 # b通道清零
cur_img[:,:,1] 0 # g通道清零
cv2.imshow(cur_img,cur_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
只保留G通道显示
img cv2.imread(img1.jpg,cv2.IMREAD_COLOR)
b,g,r cv2.split(img)
# 只保留R [h,w,c] c表示通道根据bgr索引b为0g为1r为2
cur_img img.copy()
cur_img[:,:,0] 0 # b通道清零
cur_img[:,:,2] 0 # r通道清零
cv2.imshow(cur_img,cur_img)
cv2.waitKey(0)
cv2.destroyAllWindows()只保留B通道显示
img cv2.imread(img1.jpg,cv2.IMREAD_COLOR)
b,g,r cv2.split(img)
# 只保留R [h,w,c] c表示通道根据bgr索引b为0g为1r为2
cur_img img.copy()
cur_img[:,:,1] 0 # g通道清零
cur_img[:,:,2] 0 # r通道清零
cv2.imshow(cur_img,cur_img)
cv2.waitKey(0)
cv2.destroyAllWindows()边界填充
img cv2.imread(img1.jpg,cv2.IMREAD_COLOR)
top_size,bottom_size,left_size,right_size (50,50,50,50)# cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType) borderType为边界填充类型
replicate cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderTypecv2.BORDER_REPLICATE)
reflect cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderTypecv2.BORDER_REFLECT)
reflect101 cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderTypecv2.BORDER_REFLECT101)
wrap cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderTypecv2.BORDER_WRAP)
constant cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderTypecv2.BORDER_CONSTANT,value0)数值计算
# 部分数值计算(如图像融合)前提需要两图像shape值相同
img1 cv2.imread(img1.jpg,cv2.IMREAD_COLOR)
img2 cv2.imread(img2.jpg,cv2.IMREAD_COLOR)
img3 img1 10 # 相当于3个通道中每一个像素数值都加10
img4 img1 img2 # 两张图像中每个像素的rgb三通道数值相加# 以rgb888为例如果一个像素的r相加后255则该数值等于相加后%255
img5 cv2.add(img1,img2) # 两张图rgb相加如果255则取最大值255图像融合
# 图像融合前提需要两图像shape值相同
img1 cv2.imread(img1.jpg,cv2.IMREAD_COLOR)
img2 cv2.imread(img2.jpg,cv2.IMREAD_COLOR)# cv2.addWeighted(img1,img1权重,img2,img2权重,偏置项(整体提亮多少))
h2 img2.shape[0]
w2 img2.shape[1]
img1_new cv2.resize(img1,(w2,h2))
res cv2.addWeighted(img1_new,0.4,img2,0.6,0)
cv2.imshow(res,res)
cv2.waitKey(0)
cv2.destroyAllWindows()