c# - 将 Mat 数组从 EmguCV 传递到 OpenCV?
问题描述
我正在尝试将 EmguCV Mat 对象从 C# 发送到 OpenCV C++ DLL 函数。我的原始数据位于 byte[] 数组中,然后我将其转换为 Mat 对象。
我在调用我的 C++ 函数时遇到错误:错误 CS0029 无法将类型“int”隐式转换为“Emgu.CV.Mat”
我不确定我应该如何将我的数据从 C# 代码传递到 C++ 函数。
这是我的 C# 代码:
private void image_algorithms(byte[] buffer, int width, int height)
{
int grid_count = 5;
int grid_width = width / grid_count;
int grid_height = height / grid_count;
MyImage = new Image<Gray, byte>(width, height);
MyImage.Bytes = buffer;
Mat image_pre_crop = MyImage.Mat;
//calling C++ function here
Mat croppedImage = crop_image(image_pre_crop);
}
我的 C++ 函数如下所示:
Mat crop_image(Mat image) {
bool fromCenter = false;
namedWindow("Crop frame", WINDOW_NORMAL);
Rect2d r = selectROI("Crop frame", image, fromCenter);
Mat imgCrop = image(r);
return imgCrop;
}
解决方案
推荐阅读
- javascript - 如何在 Javascript 文件之间切换
- r - 删除整个季度的 NA 数据,而不是整个数据集
- php - PHP:如何修复 ftp_mlsd 返回 false
- mysql - json_unquote 和提取给出空值
- ruby-on-rails-3 - 如何在 RoR 网站中使用“POST url”JSON 文件?
- python-3.x - 如何根据给定的信息编写混淆矩阵?
- python - 使用 deque insert() 合并两个列表?
- string - 捕获可疑相似代码的最佳字符串比较算法
- java - jar 尺寸太大。如何减少 Maven 项目中的 jar 大小?
- google-apps-script - Google Sheets - 根据关键字将行移动到不同选项卡的脚本