cvMatND 多维数组 设置和读取像素值
原帖地址:http://shijuanfeng.blogbus.com/logs/206701809.html
opencv中的多维数组——MatND的用法,因为直方图就是多维数组,所以了解一下它的基本用法,仅做收藏。
void MatNDReadAndSet()
{
int M = 192;
int N = 168;
int K = 7;
int size[] = { M, N, K };
CvMatND* mXOrigin = cvCreateMatND( 3, size, CV_32FC1 );
cvSetZero( mXOrigin );
float c = 0;
for ( int k=0; k<K ; k++)
{
for ( int i=0; i<M; i++)
{
for ( int j=0; j<N; j++)
{
*(mXOrigin->data.fl + ( M*N*k + N*i + j) ) = c;
c = c+1;
}
}
}
for ( int k=0; k<K; k++)
{
for ( int i=0; i<M; i++)
{
for ( int j=0; j<N; j++)
{
cout << *(mXOrigin->data.fl + ( M*N*k + N*i + j) ) << "\t";
}
cout << endl;
}
cout << endl;
}
cvReleaseMatND( &mXOrigin );
}
除了这种方式,在c++中,还可以用另外一种更直接的方式:
uchar tt, tt1;
int dims[3]={256, 256, 256};
cv::MatND lookup(3,dims,CV_8U)
lookup.at<uchar>(i, j,k) = tt;
tt1 = lookup.at<uchar>(i, j,k);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程