在Python中放大灰度图像

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

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

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

如果标志值为:

  • 1:加载彩色图像。

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

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

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

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

同样在此程序中,我们将使用numpy模块的一个功能。

median():取数组并返回数组的中位数。

另外,在此程序中,我们使用数组切片的概念

设A为一维数组:
A [start:stop:step]

  1. start:序列的起始编号。

  2. stop:生成不超过此数字的数字,但不包括此数字。

  3. step序列中每个数字之间的差。

示例

    A = [1,2,3,4,5,6,7,8,9,10]

    print(A[ 1: 5])

    Output:

    [2,3,4,5]

用于在Python中放大灰度图像的Python程序

# open-cv库在python中安装为cv2

# 将cv2库导入此程序

import cv2

# 导入numpy作为np名称

import numpy as np

# read an image using imread() function of cv2

# 我们只需要传递图像的路径

img = cv2.imread(r'C:/Users/user/Desktop/pic6.jpg',0)

# displaying the image using imshow() function of cv2

# 在此:第一个参数是框架的名称

# 第二个参数是图像矩阵

cv2.imshow('original image',img)

# 升级代码

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

x,y = 2, 2

# 这里的图片是'uint8'类的,取值范围  

# 每个颜色分量可以具有的是[0-255]

# 创建一个x,y次的零矩阵

# 3维的先前图像

upscale_img = np.zeros((x*img.shape[0],y*img.shape[1]),np.uint8)

i, m = 0, 0

while m < img.shape[0] :

    j, n = 0, 0

    while n < img.shape[1]:

        # 我们将原始图像矩阵的像素值分配给

        # 交替的行和列中的新的放大图像矩阵

        upscale_img[i, j] = img[m, n]

        # 将j增加y倍

        j += y

        # n增加1

        n += 1

    # m递增一

    m += 1

    # 将我增加x倍

    i += x

   

cv2.imshow('upscaling image',upscale_img)

输出结果


以上是 在Python中放大灰度图像 的全部内容, 来源链接: utcz.com/z/321437.html

回到顶部