opencv在图片矩阵中对应位置赋值,遍历输出显示所有值。(赋值位置的行号为学号倒数第三位,列号为学号倒数后两位、第一位从0开始)用c++写出来
时间: 2024-10-16 07:03:12 浏览: 22
Python OpenCV实现图片上输出中文
在OpenCV中,你可以使用Mat矩阵结构来存储和操作图像数据。如果你想根据学生学号的特定部分来设置矩阵的元素,并遍历输出所有值,可以按照下面的方式来编写C++代码:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
// 假设我们有一个1D整数向量表示学生的学号列表
std::vector<int> studentNumbers = {123456, 789012, 345678, ...}; // 更改实际的学号列表
// 创建一个和学号长度匹配的Mat矩阵,假设每个学生信息需要两个像素
cv::Mat img(students.size(), 2, CV_32FC1, cv::Scalar(0)); // 使用单精度浮点型
for (size_t i = 0; i < studentNumbers.size(); ++i) {
int row = studentNumbers[i] % 100; // 取出倒数第三位作为行号
int col = (studentNumbers[i] / 100) % 10; // 倒数后两位作为列号,注意第一位默认从0开始
img.at<cv::Vec2f>(row, col) = cv::Vec2f(i + 1, 0); // 第一行是索引,第二行保持0,因为题目只提到行号影响
std::cout << "Row: " << row << ", Col: " << col << ", Value: (" << i + 1 << ", 0)\n";
}
// 显示矩阵
cv::imshow("Student Data", img);
cv::waitKey(0);
return 0;
}
```
这段代码首先创建了一个与学号对应的Mat矩阵,并通过循环遍历学生学号,根据其规则设置矩阵中的元素。然后它会打印出每个元素的位置及其值,并在最后显示整个矩阵。
阅读全文