opencv在图片矩阵中对应位置赋值,遍历输出显示所有值。(赋值位置的行号为学号倒数第三位,列号为学号倒数后两位、第一位从0开始)
时间: 2024-10-16 12:06:05 浏览: 18
Python OpenCV实现图片上输出中文
OpenCV是一个强大的计算机视觉库,在Python中,你可以使用其`numpy`模块与图像数据交互。如果你想在图片矩阵中按照特定规则(如学号的倒数第三位作为行索引,最后两位作为列索引,且从0开始计数)对每个像素点赋值并遍历显示,可以这样做:
首先,假设你有一个二维数组代表图像矩阵,称为`image`,并且你有一个包含学号的列表,例如`student_numbers`。
```python
import cv2
import numpy as np
# 假设image是一个MxN的灰度图像, student_numbers是一个包含学号的列表
# 学号的格式为四位数字,如"0012"
image = np.zeros((len(student_numbers), image.shape[1]), dtype=np.uint8)
for i, number in enumerate(student_numbers):
# 分割学号,获取倒数第三位到第四位作为列索引,倒数第二位到第三位作为行索引
col_index = int(number[-2:]) - 1 # 减一因为是从0开始计数
row_index = int(number[-4:-2]) - 1
# 确保索引在范围之内
if 0 <= row_index < image.shape[0] and 0 <= col_index < image.shape[1]:
image[row_index][col_index] = 255 # 将该位置设置为白色,这里假设255是高亮值
# 显示修改后的图像
cv2.imshow('Image with Student Numbers', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们通过循环遍历学生名单,找到对应的行和列,并将它们设置为白色。然后使用OpenCV的`imshow`函数显示结果。
阅读全文