由于有matrix类和Image类有很多共同点,很多Image类可以用的函数,matrix类也能使用
1.保存图片函数
public virtual void Save(string fileName)//保存图片的名称。
2.复制矩阵
public virtual Matrix<TDepth> Clone()
3.拼接矩阵(横向,纵向方向)类似Image类,注意拼接保证(W,H的一致型)
public Matrix<TDepth> ConcateVertical(Matrix<TDepth> otherMatrix)//H方向加,要求W方向一致。
public Matrix<TDepth> ConcateHorizontal(Matrix<TDepth> otherMatrix)//水平方向加要求H方向一致。
4.复制空矩阵
public Matrix<TDepth> CopyBlank()//复制,同时里面元素值都为0。
5.分离多通道的矩阵(类似图像)
public Matrix<TDepth>[] Split() //得到矩阵数组
6.转置(相当转90度,w,h对换)
public Matrix<TDepth> Transpose()
7.得到子矩阵(类似图片COPY子图)
public Matrix<TDepth> GetSubRect(Rectangle rect) //矩阵
public Matrix<TDepth> GetCol(int col)//得到一列的子矩阵
public Matrix<TDepth> GetCols(int startCol,int endCol)//得到几列的子矩阵
public Matrix<TDepth> GetRow(int row)//得到一行的子矩阵
public Matrix<TDepth> GetRows(int startRow,int endRow,int deltaRow)//得到几行的子矩阵,deltaRow步调
8.删掉部分矩阵部分数据
public Matrix<TDepth> RemoveCols(int startCol,int endCol)//删除几列的子矩阵
public Matrix<TDepth> RemoveRows(int startRow,int endRow)//删除几行的子矩阵
9.得到类似图片ROS的矩阵,共享数据
public Matrix<TDepth> Reshape(int newChannels,int newRows)
10.返回这个矩阵的主对角线元素
public Matrix<TDepth> GetDiag()//返回矩阵的主对角线元素的矩阵
public Matrix<TDepth> GetDiag(int diag)//返回特定的这个矩阵的对角元素
案例学习:
///保存图片
Matrix<Byte> mat1 = new Matrix<byte>(new Size(500, 200));
for (int i = 0; i < 200; i++)for (int j = 0; j < 500; j++)
mat1[i, j] = 100;
imageBox1.Image = mat1.Mat;
mat1.Save("mei.jpg"); //图片
///拼接(
Matrix<Byte> mat1 = new Matrix<byte>(new Size(500, 200));
for (int i = 0; i < 200; i++)
for (int j = 0; j < 500; j++)
mat1[i, j] = 100;
Matrix<Byte> mat2 = new Matrix<byte>(new Size(500, 300));
for (int i = 0; i < 300; i++)
for (int j = 0; j < 500; j++)
mat2[i, j] = 100;
Matrix<Byte> mat3 = mat1.ConcateVertical(mat2);
imageBox1.Image = mat3.Mat;
mat3.Save("mei.jpg");
Matrix<Byte> mat2 = new Matrix<byte>(new Size(500, 300));
for (int i = 0; i < 300; i++)
for (int j = 0; j < 500; j++)
mat2[i, j] = 100;
Matrix<Byte> mat3 = mat1.ConcateVertical(mat2);
imageBox1.Image = mat3.Mat;
Matrix<Byte> mat4=mat2.Transpose(); //转置,可以看图片变了
mat3.Save("mei.jpg");
mat4.Save("mei1.jpg");