1.图像融合。将新图像的每个像素称为两个原图像中对应像素的平均值之和,即:将两个图像的像素值去50%后相加。为简化计算直接选取其中一个原图像做为新图像,设新图像矩阵为myimg2.
for y in range(0,sz2):
for x in range(0,sz1):
myimg2[y, x, :] = myimg1[y, x, :] * 0.5 +myimg2[y, x, :] * 0.5
完整代码:
#图像融合
import cv2
import numpy as np
fn1 = ‘001.png‘
fn2 = ‘002.png‘
if __name__ == ‘__main__‘:
print(‘working......‘)
myimg1 = cv2.imread(fn1)
myimg2 = cv2.imread(fn2)
#取得图像的大小
w = myimg1.shape[1]
h = myimg1.shape[0]
sz1 = w
sz2 = h
for y in range(0,sz2):
for x in range(0,sz1):
myimg2[y, x, :] = myimg1[y, x, :] * 0.5 +myimg2[y, x, :] * 0.5
print(‘.‘)
cv2.namedWindow(‘img2‘)
cv2.imshow(‘img2‘,myimg2)
cv2.waitKey()
cv2.destroyAllWindows()
2.图像镜像。首先获取图像的宽度,将宽度的50%取整后作为图像的中线先;然后以中线为轴,将图像左边反向复制到图像右边,是图像最右边一列的像素点等于图像最左边的像素点。纵向的与之相反。将高度的50%取整后作为图像的横向中线,复制是是最先变一行的像素点值等于最上边一行的像素点值。
纵向镜像:
#纵向生成镜像
mirror_w = w/2
for j in range(0,h):
for i in range(0,mirror_w):
img[j,i,:]=img[j,w-i-1,:]
完整代码:
import cv2
import numpy as np
fn = ‘001.png‘
if __name__ == ‘__main__‘:
print(‘loading %s ...‘ % fn)
img = cv2.imread(fn)
w = img.shape[1]
h = img.shape[0]
#纵向生成镜像
mirror_w = int(w/2)
for j in range(0, h):
for i in range(0, mirror_w):
img[j, i,:] = img[j, w-i-1,:]
cv2.namedWindow(‘img‘)
cv2.imshow(‘img‘, img)
cv2.waitKey()
cv2.destroyAllWindows()
原文:https://www.cnblogs.com/superSmall/p/12485882.html