Mat类编写矩阵乘法和加法操作
来源:互联网 发布:同济启明星软件价格 编辑:程序博客网 时间:2024/06/06 18:06
#include <iostream>#include "opencv2/opencv.hpp"using namespace std;using namespace cv;Mat Inputmatrix(void){int row, column;float element;cout << "please input the first matrix(size):";cin >> row >> column;Mat matrix1(row, column, CV_32FC1);//类型问题我没搞懂cout << "please input the matrix(elements):";for (int i = 0; i < matrix1.rows; ++i)for (int j = 0; j < matrix1.cols; ++j){cin >> element;matrix1.at<float>(i, j) = element;}return matrix1;}Mat operate_function(Mat matrix1, Mat matrix2){char ch;cout << "please input the operation:";cin >> ch;cout << "output matrix is:" << endl;if (ch == '+'){if (matrix1.rows!= matrix2.rows || matrix1.cols != matrix2.cols){cout << "error!";exit(0);}Mat matrixx = matrix1 + matrix2;return matrixx;}else if (ch == '*'){if (matrix1.cols != matrix2.rows){cout << "error!";exit(0);}Mat matrixx = matrix1*matrix2;return matrixx;}}int main(int argc, char* argv[]){Mat matrix1, matrix2;matrix1 = Inputmatrix();matrix2 = Inputmatrix();Mat matrix3 = operate_function(matrix1, matrix2);cout << matrix3;waitKey(0);return 0;}用Mat类不用自己考虑动态内存分配和释放,*(矩阵相乘)参与点乘的两个Mat矩阵的数据类型(type)只能是 CV_32F、 CV_64FC1、 CV_32FC2、 CV_64FC2 这4种类型中的一种。若选用其他类型,比如CV_8UC1,编译器会报错
阅读全文
0 0
- Mat类编写矩阵乘法和加法操作
- 矩阵的加法和乘法
- Java 矩阵类 实现加法、减法和乘法
- python的矩阵加法和乘法
- 分块矩阵的加法和乘法运算
- 【矩阵的乘法和加法模板】
- 十字链表实现矩阵的加法和乘法
- 三元组表示的稀疏矩阵的加法和乘法
- CUDA编程入门:向量加法和矩阵乘法
- 第九周项目2 对称矩阵加法和乘法
- 第九周项目2 对称矩阵加法和乘法
- 矩阵快速幂,矩阵加法,矩阵乘法
- 稀疏矩阵乘法与加法
- 大数加法和乘法
- 大数加法和乘法
- 高精度加法和乘法
- 多项式加法和乘法
- 加法和乘法
- 二分查找
- opencv3笔记一 滑动条的创建与使用
- Leetcode之Product of Array Except Self 问题
- UVa 1225 Digit Counting
- 关于float不能移位的解决方案
- Mat类编写矩阵乘法和加法操作
- python学习.3循环遍历整个列表
- Android 中的数据库操作
- ajax跨域设置django-cors-headers
- 盒子模型
- Vue filter computed watch 的用法
- C++字符串操作接口
- Python学习笔记(2)数据类型
- Java注解