123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- //
- // Created by lloyd on 2020/9/28.
- //
- #include <iostream>
- #include "opencv2/opencv.hpp"
- #include <vector>
- #include "gtimgcreator.h"
- /*
- ***生成功图的mat对象(归一法1、2形成的图像大小一致,标准点个数一致)
- @mat1 归一法1得图像
- @mat1 归一法2得图像
- @matrows 图像的行数 也就是height 像素值
- @matcols 图像的列数 也就是width 像素值
- @gtdata1 归一法1坐标点x,y数组
- @gtdata2归一法2坐标点x,y数组
- @pxcount 坐标点个数
- @oneImg 1表示使用叠加图(法1法2在图1) 2表示分开显示 法1 法2
- */
- void gtimgcreator::creatGTMat(cv::Mat &mat1, cv::Mat &mat2, int matrows, int matcols, std::vector<std::vector<int>> >data1,
- std::vector<std::vector<int>> >data2, int pxcount, int oneImg) {
- for (int i = 0; i < matrows; i++) {
- for (int j = 0; j < matcols; j++) {
- cv::Vec3b &rgba1 = mat1.at<cv::Vec3b>(i, j);
- //rgba1[0] = UCHAR_MAX;
- rgba1[0] = 255;
- rgba1[1] = 255;
- rgba1[2] = 255;
- cv::Vec3b &rgba2 = mat2.at<cv::Vec3b>(i, j);
- //rgba2[0] = UCHAR_MAX;
- rgba2[0] = 255;
- rgba2[1] = 255;
- rgba2[2] = 255;
- }
- }
- for (int pxindex = 0; pxindex < pxcount; pxindex++) {
- cv::Vec3b &rgba1 = mat1.at<cv::Vec3b>(matrows - gtdata1[pxindex][1], gtdata1[pxindex][0]);
- //rgba1[0] = UCHAR_MAX;
- rgba1[0] = 255;
- rgba1[1] = 0;
- rgba1[2] = 0;
- if (oneImg == 1) {
- //将两种归一化的图像放在一起
- cv::Vec3b &rgba1_1 = mat1.at<cv::Vec3b>(matrows - gtdata2[pxindex][1], gtdata2[pxindex][0]);
- //rgba1_1[0] = UCHAR_MAX;
- rgba1_1[0] = 0;
- rgba1_1[1] = 0;
- rgba1_1[2] = 255;
- }
- cv::Vec3b &rgba2 = mat2.at<cv::Vec3b>(matrows - gtdata2[pxindex][1], gtdata2[pxindex][0]);
- //rgba2[0] = UCHAR_MAX;
- rgba2[0] = 0;
- rgba2[1] = 255;
- rgba2[2] = 0;
- }
- }
|