在Python中放大RGB图像

图像放大是指放大图像的大小。

在此程序中,我们将使用OpenCV-python(cv2)模块的两个功能。.首先让我们看看它们的语法和说明。

1) imread():
它将图像文件的绝对路径/相对路径作为参数,并返回其对应的图像矩阵。

如果标志值为:

  • 1:加载彩色图像。

  • 0:以灰度模式加载图像。

  • -1:加载图像,包括alpha通道。

如果未给出标志值,则显示原始图像,并给出哪个路径。

2) imshow():
以窗口名称和图像矩阵为参数,以便在具有指定窗口名称的显示窗口中显示图像。

同样在此程序中,我们将使用图像矩阵的一个属性:

3)形状:这是图像矩阵的属性,该属性返回图像的形状,即由行数,列数和平面数组成。

扩展RGB图像的Python程序

# open-cv库在python中安装为cv2
# 将cv2库导入此程序
import cv2

# 将numpy库作为np导入此程序
import numpy as np

# 定义用于放大图像的功能
def upscaling(img,x,y,row,col) :

    # 这里的图片是'uint8'类的,取值范围  
    # 每个颜色分量可以具有的是[0-255]

    # 创建一个x,y次的零矩阵
    # 3维的先前图像
    upscaling_img = np.zeros((x*row,y*col),np.uint8)

    i, m = 0, 0

    while m < row :

        j, n = 0, 0
        while n < col:

            # 我们将原始图像矩阵的像素值分配给
            # 交替的行和列中的新的放大图像矩阵
            upscaling_img[i, j] = img[m, n]

            # 将j增加y倍
            j += y

            # n增加1
            n += 1

        # m递增一
        m += 1

        # 将我增加x倍
        i += x

    return upscaling_img

       

# 驱动程式码
if __name__ == "__main__" :
    
    # read an image using imread() function of cv2
    # 我们只需要传递图像的路径
    img = cv2.imread(r'C:/Users/user/Desktop/pic6.jpg')

    # displaying the image using imshow() function of cv2
    # 在此:第一个参数是框架的名称
    # 第二个参数是图像矩阵
    cv2.imshow('original image',img)

    # 分配行数,行数和
    # 平面到各个变量
    row,col,plane = img.shape

    # 分配BGR图像的蓝色平面
    # 到blue_plane变量
    blue_plane = img[:,:,0]

    # 分配BGR图像的绿色平面
    # 到green_plane变量
    green_plane = img[:,:,1]

    # 分配BGR图像的红色平面
    # 到red_plane变量
    red_plane = img[:,:,2]

    # 沿行和列将图像放大x,y次
    x,y = 2, 2

    # 这里的图片是'uint8'类的,取值范围  
    # 每个颜色分量可以具有的是[0-255]

    # 创建一个x,y次的零矩阵
    # 3维的先前图像
    upscale_img = np.zeros((x*row,y*col,plane),np.uint8)
    
    upscale_img[:,:,0] = upscaling(blue_plane, x,y,row,col)
    upscale_img[:,:,1] = upscaling(green_plane, x,y,row,col)
    upscale_img[:,:,2] = upscaling(red_plane, x,y,row,col)

    cv2.imshow('Upscale image',upscale_img)

输出结果

在Python中升级RGB图像-输出