📄 fnmatrix.h
字号:
// FnMatrix.h: interface for the FnMatrix class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_FNMATRIX_H__30B7D889_BB9B_11D2_9B76_204C4F4F5020__INCLUDED_)
#define AFX_FNMATRIX_H__30B7D889_BB9B_11D2_9B76_204C4F4F5020__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "Matrix.h"
#include "stdafx.h"
#define Max_cost 255
struct HSI{
double Hue;
double Sat;
double Inten;
};
struct SeedCandidate{
CPoint seed_cand;
struct SeedCandidate* nextCand;
double HueError;
double GradMagError;
double PositionError;
};
struct Contour{
CPoint boundary;
struct Contour* next_point;
};
struct Active_List_elem{
CPoint pixel;
struct Active_List_elem* down;
};
struct Graph_elem{
BOOL expand;
long int cumul_cost;
double local_cost[9];
CPoint pixel;
struct Graph_elem* parent;
int redraw;
struct Active_List_elem* listElem;
};
struct Live_wire_elem{
CPoint pixel;
struct Live_wire_elem* next;
int red;
int green;
int blue;
};
/*BOOL Create_Active_List(Active_List_elem* min_cost,Graph_elem *first);*/
struct Active_List_elem* Add_Active_List(struct Active_List_elem* min_cost,CPoint pixel);
BOOL Remove(struct Active_List_elem* remove_this,struct Active_List_elem** index_array);
int Remove_to_Expand(int start_index,Active_List_elem** list_pointer);
CPoint CursorSnap(CPoint seed,matrix &GradientMagnitude);
matrix operator*(const matrix& x, const matrix& y);
matrix operator&(const matrix& x, const matrix& y); // a .* b
matrix operator/(const matrix& x, const matrix& y); // a ./ b
matrix operator+(const matrix& x, const matrix& y);
matrix operator+(const matrix& x, double a);
matrix operator+(double a, const matrix& x);
matrix operator-(const matrix& x, const matrix& y);
matrix operator-(const matrix& x, double a);
matrix operator-(double a, const matrix& x);
matrix operator*(const matrix& x, double a);
matrix operator*(double a, const matrix& x);
matrix operator/(const matrix& x, double a);
matrix operator/(double a, const matrix& x);
matrix operator|(matrix& x, matrix& y); // convolve
matrix operator!(const matrix &in); // transpose
matrix Laplacian(matrix &img,int kernel_size);
matrix filterGaussSmooth( double sigma); // returns nx1 matrix
matrix filterGaussDeriv( double sigma); // returns nx1 matrix
matrix filterReduce(); // returns nx1 matrix
matrix filterExpand(); // returns nx1 matrix
void Dijkstra(CPoint seed,matrix &imgNext,Graph_elem **graph_array,Active_List_elem **index_array);
matrix LiveWireDrawer(CPoint seedPrev,CPoint seedCurrent,matrix &imgNext,Graph_elem **graph_array,Active_List_elem **index_array,Contour *&Last);
matrix zeros(int k, int l, int n = 1);
matrix eye(int k);
matrix ones(int k, int l, int n = 1);
matrix cutr(const matrix& a, int k); //cut row and column
matrix cutc(const matrix& a, int k); //paste functions are members
matrix diag(const matrix& a);
matrix sort(const matrix& A);
double sum(const matrix& a);
matrix exp(const matrix& a);
matrix trps(const matrix &a);
matrix power(const matrix& a, double p );
matrix abs(const matrix& a);
double norm2(const matrix& a);
matrix inv(const matrix& a); //inverse
matrix cov(const matrix& x); //covariance
double FindMax(matrix a);
double FindMin(matrix a);
double MinFind(matrix &a,int bandno);
double MaxFind(matrix &a,int bandno);
double** Gradient_Mag(matrix &img,matrix &GradientMagnitude,int kernel_size);
void Gradient_Dir(CPoint p,int N,int M,double **grads,double* local_cost,double coeff);
void ConvertMatrixTo2DArray( matrix& inImage, double** outImage);
matrix Convert2DArrayToMatrix( double** inImage, int ysi, int xsi);
// was used for Lucas-Kanade motion estimation
matrix DownsampleRow(matrix& mat, int factor);
matrix DownsampleColumn(matrix& mat, int factor);
matrix UpsampleRow(matrix& mat, int factor);
matrix UpsampleColumn(matrix& mat, int factor);
matrix reduce( matrix& image);
matrix expand( matrix& image);
matrix calcSmoothBoth( matrix& image, double spread);
matrix calcDerivHor( matrix& image, double spread);
matrix calcDerivVert( matrix& image, double spread);
int svdcmp(matrix& inmatrix, matrix& U_mat, matrix& diagonal, matrix& square);
matrix inverse(matrix& inMatrix);
matrix OuterProduct(matrix& a, matrix& b);
double determinant(matrix& a);
#endif // !defined(AFX_FNMATRIX_H__30B7D889_BB9B_11D2_9B76_204C4F4F5020__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -