我有一个占用窗口全部范围的NSImageView.图像视图没有边框,其设置显示在左下角.因此,这意味着视图的原点与实际图像的原点匹配,无论窗口的大小如何调整.
此外,图像比我在屏幕上完全适合的尺寸大得多.所以我也将imageview设置为按比例缩小图像的大小.但是,我似乎无法在任何地方找到这种比例因子.
我的最终目标是将鼠标按下事件映射到实际图像坐标.要做到这一点,我想我还需要一条信息......显示的NSImage实际上有多大.
如果我看一下[imageView bounds],我会得到图像视图的边界矩形,它通常会比图像大.
有一篇文章描述了如何在这里做到这 一点,这似乎对其他人有用,但它不能为我编译.
这是使用的.h文件的副本:
//
// NSImage+OpenCV.h
//
#import <AppKit/AppKit.h>
@interface NSImage (NSImage_OpenCV) {
}
+(NSImage*)imageWithCVMat:(const cv::Mat&)cvMat;
-(id)initWithCVMat:(const cv::Mat&)cvMat;
@property(nonatomic, readonly) cv::Mat CVMat;
@property(nonatomic, readonly) cv::Mat CVGrayscaleMat;
@end
Run Code Online (Sandbox Code Playgroud)
我使用openCV 2.4.2在Xcode 4.4上.我为头文件获得的编译器错误是以下4倍:
Semantic issue: Use of undeclared identifier 'cv'
这个错误似乎很明显......头文件没有定义cv :: Mat是什么.所以我看了一下我需要添加的OpenCV 2.4教程
#include <opencv2/core/core.hpp>
这产生了20个其他错误,编译器抱怨core.hpp文件.第一个说:
Semantic issue: Non-const static data member must be initialized out of line
所以我的问题是我做错了什么?如何使此代码生效?