[英]How to convert cv Mat to Objective C Mat * in OpenCV
我有 cvMat 的實例,例如cv::Mat sourceImage;
是否可以將其轉換為 Objective C Mat 對象,例如Mat *dst = [[Mat alloc] init];
如果您希望創建一個包含您的結構的自定義 ObjectiveC 類,您將需要環繞它,或者您需要復制所有您感興趣的值。
包裝應該很簡單:
標題:
NS_ASSUME_NONNULL_BEGIN
@interface Mat : NSObject
@property (readonly) cv::Mat cvMat;
- (id)init:(cv::Mat)inputData;
@end
NS_ASSUME_NONNULL_END
資源
@interface Mat ()
@property cv::Mat internalValue;
@end
@implementation Mat
- (id)init:(cv::Mat)inputData {
if((self = [super init])) {
self.internalValue = inputData;
}
return self;
}
- (cv::Mat)cvMat {
return self.internalValue;
}
@end
所以這會讓你的代碼看起來像:
Mat *dst = [[Mat alloc] init:sourceImage];
cv::Mat rawImage = dst.cvMat;
我已經自己弄清楚了
OpenCV 中有可用的初始化程序,它采用 C++ Mat 實例類型並創建 Objective C Mat 實例。
+ (instancetype)fromNative:(cv::Mat&)nativeRef;
Mat *objectiveC_Mat = [Mat fromNative: sourceImage];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.