首页 > 其他 > 详细

图像融合与图像镜像

时间:2020-03-13 13:18:28      阅读:56      评论:0      收藏:0      [点我收藏+]

  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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!