簡體   English   中英

如何在 OpenCV 中將 cv Mat 轉換為 Objective C Mat *

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM