程序设计:opencv

opencv中矩阵 cv::Mat 是按照(row,col)排的,也就是(height,width),但内部存储实际上还是行优先的,内部数组存储可以直接使用

//gdal读数据,width*height
float *pBuffer = new float[nWidth*nHeight];
poDataset->RasterIO(GF_Read, 0, 0, nWidth, nHeight, pBuffer, nWidth, nHeight, GDT_Float32, nBand, NULL, 1, 0, 1); 
//width*height,注意参数传入
cv::Mat mat(nHeight,nWidth,CV_32FC1,pBuffer);

掩膜必须是 CV_8U 类型,即CV_8UC1 CV_8UC2 CV_8UC3 CV_8UC4,波段数opencv只有1-4,可以逐个波段处理,掩膜中1处理,0不处理

char* mask = new char[nWidth*nHeight];
//加载掩膜
...
cv::Mat mask((nHeight,nWidth,CV_8UC1,mask);

卷积调用 cv::filter2D,src和dst矩阵可以相同,处理的矩阵可以自己设计,opencv卷积经过优化速度,比自己写的快

cv::filter2D()
  • 程序设计/opencv.txt
  • 最后更改: 2022/09/28 15:45
  • 39.173.105.148