赞
踩
import cv2 #opencv读取的格式是BGR
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
img=cv2.imread('cat.jpg')
#图像的显示,也可以创建多个窗口
cv2.imshow('image',img)
# 等待时间,毫秒级,0表示任意键终止
cv2.waitKey(0)
cv2.destroyAllWindows()
img=cv2.imread('cat.jpg',cv2.IMREAD_GRAYSCALE)
#保存
cv2.imwrite('mycat.png',img)
vc = cv2.VideoCapture('test.mp4')
# 检查是否打开正确
if vc.isOpened():
oepn, frame = vc.read()
else:
open = False
while open:
ret, frame = vc.read()
if frame is None:
break
if ret == True:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('result', gray)
if cv2.waitKey(100) & 0xFF == 27:
break
vc.release()
cv2.destroyAllWindows()
img=cv2.imread('cat.jpg')
cat=img[0:50,0:200]
b,g,r=cv2.split(img)
这段代码演示了使用 OpenCV 在图像边缘添加不同类型的边框的方法。代码首先指定了要添加到图像四周的边框大小,然后使用不同的边框类型来创建新的图像。最后,使用 matplotlib 展示了原始图像和各种边框效果。下面是代码的详细解释和逐行注释:
# 引入必需的库 import numpy as np import cv2 from matplotlib import pyplot as plt # 定义添加到图像边缘的大小 top_size, bottom_size, left_size, right_size = (50, 50, 50, 50) # 使用不同的边框类型复制并添加边框 # REPLICATE:复制边缘像素 replicate = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE) # REFLECT:边框以边缘像素为轴对称 reflect = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT) # REFLECT_101:与 REFLECT 类似,但在对称时排除最边缘的像素 reflect101 = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT_101) # WRAP:边框通过将图像对折后使用对面的像素 wrap = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_WRAP) # CONSTANT:添加恒定颜色的边框,这里颜色值为 0 (黑色) constant = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_CONSTANT, value=0) # 使用 matplotlib 显示原始图像和各种边框效果 plt.subplot(231), plt.imshow(img, 'gray'), plt.title('ORIGINAL') plt.subplot(232), plt.imshow(replicate, 'gray'), plt.title('REPLICATE') plt.subplot(233), plt.imshow(reflect, 'gray'), plt.title('REFLECT') plt.subplot(234), plt.imshow(reflect101, 'gray'), plt.title('REFLECT_101') plt.subplot(235), plt.imshow(wrap, 'gray'), plt.title('WRAP') plt.subplot(236), plt.imshow(constant, 'gray'), plt.title('CONSTANT') # 显示图像 plt.show()
每种边框类型都有其特定的视觉效果和用途:
img_cat=cv2.imread('cat.jpg')
img_dog=cv2.imread('dog.jpg')
img_cat2= img_cat +10
cv2.add(img_cat,img_cat2)[:5,:,0]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。