图像处理-图像拼接

1、问题描述

在使用opencv的imshow方法时,需要一次性展示较多图像。

2、解决方案

对于数字图像,本质上还是数组,因此为了达到图像拼接的效果,使用cv2自带的hconcat(horizontal),vconcat(vertical)。方法。使用numpy自带的数组拼接函数即可,hstack(水平拼接),vstack(垂直拼接)。或者c_(水平拼接),r_(竖直拼接)。

3、代码实现

3.1 彩色图像

彩色图像是三维数组,因此不能仅仅使用np对二维数组的操作方法,而是使用hconcat(水平粘连),vconcat(垂直粘连)的方法。

def Retraction(image):
    Image = np.copy(image)
    NearestImage = cv.resize(src=Image,dsize=dsize1,interpolation=cv.INTER_NEAREST)
    CubicImage = cv.resize(src=Image,dsize=dsize1,interpolation=cv.INTER_CUBIC)
    LanczosImage = cv.resize(src=Image,dsize=dsize1,interpolation=cv.INTER_LANCZOS4)
	
	#核心是这一句,上面的做过插值处理的图像,不重要,本质上还是图像。注意(v)hconcat函数里面还有一个括号。
    temp1 = cv.hconcat((NearestImage,CubicImage,LanczosImage))
    temp2 = cv.vconcat((NearestImage,CubicImage,LanczosImage))
    cv.imshow("temp",temp2)
    cv.waitKey()

    return;

3.2 灰度图像


def gamma_transformation(image):
    c1 = 5
    c2 = 5
    c3 = 5
    gamma1 = 0.9
    gamma2 = 1.8
    gamma3 = 2.7

    cImage = np.copy(image/255.0)
    GTImage1 = c1 * np.power(cImage,gamma1)
    GTImage2 = c2 * np.power(cImage, gamma2)
    GTImage3 = c3 * np.power(cImage, gamma3)

    img1 = np.c_[cImage,GTImage1]
    img2 = np.c_[GTImage2,GTImage3]
    img = np.r_[img1,img2]
    
    """
    img1 = np.hstack(cImage,GTImage1)
    img2 = np.hstack(GTImage2,GTImage3)
    img = np.vstack(img1,img2)
    """

    cv.imshow('Result',img)
    cv.waitKey()

4、效果呈现

4.1 彩色图像

在这里插入图片描述

4.2 灰度图像

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牛右刀薛面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值