OpenCV-Python:随机数与随机颜色

2023-12-14 03:56:06

目录

Python中随机数

OpenCV-Python随机数

?随机颜色的生成

随机噪声生成

代码练习与测试

知识笔记


Python中随机数

????????在Python中,我们可以使用random模块来生成随机数。random模块提供了一系列的函数来生成不同类型的随机数。以下是一些常用的随机数生成函数:

1.random():生成一个0到1之间的随机浮点数。

import random

random_number = random.random()
print(random_number)

2.randint(a, b):生成一个在指定范围内的随机整数,包括a和b。

import random

random_number = random.randint(1, 10)
print(random_number)

3.uniform(a, b):生成一个在指定范围内的随机浮点数,包括a和b。

import random

random_number = random.uniform(1.0, 10.0)
print(random_number)

4.choice(sequence):从给定的序列中随机选择一个元素。

import random

my_list = [1, 2, 3, 4, 5]
random_element = random.choice(my_list)
print(random_element)

5.shuffle(sequence):随机打乱给定的序列。

import random

my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)

OpenCV-Python随机数

????????在OpenCV-Python中,可以使用cv2模块的randu()randn()函数来生成随机数。

1.cv2.randu(dst, lowerb, upperb):生成一个指定范围内的随机整数数组或矩阵。dst是输出数组或矩阵,lowerb是下界,upperb是上界。下界和上界的数据类型必须匹配dst的数据类型。

import cv2
import numpy as np

# 生成一个3x3的int类型的随机矩阵,范围在0到255之间
random_matrix = np.zeros((3, 3), dtype=np.uint8)
lowerb = np.array([0, 0, 0])
upperb = np.array([255, 255, 255])
cv2.randu(random_matrix, lowerb, upperb)
print(random_matrix)

2.cv2.randn(dst, mean, stddev):生成一个服从正态分布的随机数数组或矩阵。dst是输出数组或矩阵,mean是均值,stddev是标准差。均值和标准差的数据类型必须匹配dst的数据类型。

import cv2
import numpy as np

# 生成一个3x3的float类型的随机矩阵,均值为0,标准差为1
random_matrix = np.zeros((3, 3), dtype=np.float32)
mean = np.array([0, 0, 0])
stddev = np.array([1, 1, 1])
cv2.randn(random_matrix, mean, stddev)
print(random_matrix)

这些函数可以生成不同类型的随机数数组或矩阵,你可以根据需要选择合适的函数来生成随机数。

?随机颜色的生成

????????通过修改绘图函数中的相关参数可以使随机颜色生成。

cv2.rectangle(image, (x, y), (x + width, y + height), color, thickness=2)

随机噪声生成

使用OpenCV-Python中的随机函数生成随机噪声的方法如下:

import cv2
import numpy as np

# 创建一个空白图像
image = np.zeros((512, 512), dtype=np.uint8)

# 生成随机噪声
cv2.randn(image, np.mean(image), np.std(image))

# 显示图像
cv2.imshow("Random Noise", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

????????在上述代码中,我们首先创建了一个空白图像,然后使用cv2.randn()函数生成了随机噪声,并将其存储在图像中。最后,使用cv2.imshow()函数显示生成的随机噪声图像。

你可以调整图像的大小和数据类型,以及噪声的均值和标准差,来生成不同类型的随机噪声。

代码练习与测试

????????以下是使用OpenCV-Python随机绘制不同大小不同矩形的代码示例:

import cv2
import numpy as np

# 创建一个空白图像
image = np.zeros((500, 500, 3), dtype=np.uint8)

# 随机绘制10个不同大小的矩形
for _ in range(10):
    # 随机生成矩形的位置和大小
    x = np.random.randint(0, 500)
    y = np.random.randint(0, 500)
    width = np.random.randint(10, 200)
    height = np.random.randint(10, 200)

    # 随机生成矩形的颜色
    color = (np.random.randint(0, 256), np.random.randint(0, 256), np.random.randint(0, 256))

    # 在图像上绘制矩形
    cv2.rectangle(image, (x, y), (x + width, y + height), color, thickness=2)

# 显示绘制结果
cv2.imshow("Random Rectangles", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行效果图:

????????此代码将创建一个500x500的空白图像,并在其中随机绘制10个不同大小的矩形。每个矩形的位置、大小和颜色都是随机生成的。最后,通过OpenCV的imshow函数显示绘制的结果。?

知识笔记

文章来源:https://blog.csdn.net/mzl_18353516147/article/details/134870694
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。