cv.copyMakeBorder()——实现边框填充
主要参数如下:
边框类型的说明:
BORDER_CONSTANT:意为添加指定颜色的边框——由value值确定:为list 其它参数:(可根据需要调制,不过一般前两个用的多一些)代码实例
import cv2 as cv
import numpy as np
if __name__ == "__main__":
img = cv.imread('./imag_in_save/open_class.png')
cv.namedWindow('imag', cv.WINDOW_NORMAL)
cv.resizeWindow('imag', 500, 500)
img = cv.copyMakeBorder(img, 20, 20, 20, 20, cv.BORDER_CONSTANT, value=[2, 83, 13]) # 添加边框
cv.imshow('imag', img)
cv.waitKey(0)
cv.destroyAllWindows()
效果
图像混合的实现cv.addWeighted()——实现图像的混合
它的工作原理采用的是一个简单权重公式:g(x)=(1−α)f0(x)+αf1(x)
代码实例
import cv2 as cv
import numpy as np
if __name__ == "__main__":
img1 = cv.imread(r'./2.png', 1) # 读取彩色图片
img2 = cv.imread(r'./3.png', 1)
cv.namedWindow('imag', cv.WINDOW_NORMAL) # 窗体
img1 = img1[0: 200, 0: 400] # 截取图像的指定部分——因为图像混合需要等大的图像
img2 = img2[0: 200, 0: 400]
img = cv.addWeighted(img1, 0.7, img2, 0.3, 0) # 混合图片——根据权重
while True:
cv.imshow('imag', img) # 显示当前序列号图片
k = cv.waitKey(0) & 0xFF
if k == 27:
break
cv.destroyAllWindows()
效果
小练习(产生类似幻灯片渐变的效果)
主要思路代码示例
我把主要注释放在代码中,边看边理解应该不难~
import cv2 as cv
import numpy as np
if __name__ == "__main__":
img_list = [] # 创建一个空序列装准备显示的一系列图片
counts = 0 # 显示图片的序号
cv.namedWindow('imag', cv.WINDOW_NORMAL) # 窗体
cv.resizeWindow('imag', 500, 500)
for i in range(2, 7): # 遍历图片,凭借到空数组中——一共5张
img = cv.imread(f'./imag_in_save/scr/{i}.png') # 用f""实现参数传入
img = img[0: 200, 0: 400] # 截取图像的指定部分——因为图像混合需要等大的图像
img_list.append(img) # 实现图片添加
while True:
cv.imshow('imag', img_list[counts]) # 显示当前序列号图片
k = cv.waitKey(2000) & 0xFF
counts += 1 # 循环下一张图片——0,1,2,3,4有效
if counts == 5: # 循环到最后一张图片后返回到第一张图片
counts = 0
for i in range(0, 10):
k_f = cv.addWeighted(img_list[counts - 1], 1 - (i * 0.1), img_list[counts], i * 0.1, 0) # 做类似渐变的图像合成
# 实现两张(当前图片和接下来显示的图片)图片,不同权重的混合——由于照片权重改变来实现渐变
cv.imshow('imag', k_f) # 显示混合的图片
k = cv.waitKey(120) & 0xFF # 延时和按键读取
if k == 27: # ESC键
break
if k == 27:
break
cv.destroyAllWindows()
效果(图片可能不是很明显,如有需要可以自己添置几张图片实现看看)
总结
到此这篇关于python opencv 图像边框(填充)添加及图像混合(末尾实现类似幻灯片渐变的效果)的文章就介绍到这了,更多相关opencv 图像边框填充混合内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!
您可能感兴趣的文章:Opencv图像处理之图像增加边框Python+OpenCV+图片旋转并用原底色填充新四角的例子Opencv学习教程之漫水填充算法实例详解