在javacv中将IplImage转换为Mat
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在javacv中将IplImage转换为Mat,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2046字,纯文字阅读大概需要3分钟。
内容图文
![在javacv中将IplImage转换为Mat](/upload/InfoBanner/zyjiaocheng/677/c1d7902c4fe947d1b4624b4b7cce1205.jpg)
我需要帮助将IplImage转换为Mat.我想为图像计算HOGDescriptor,然后用SVM对它进行分类,但是“计算”需要Mat类型.
您能举一些例子说明如何在Java中将IplImage转换成Mat吗?
解决方法:
不要混淆here文档中的official OpenCV Java binding和没有文档的JavaCV项目.
如果您使用的是JavaCV,则无需转换IplImage即可使用HOGDescriptor,如JavaCV source所示,HOGDescriptor对象包装器可处理CvArr对象:
// javacv/cpp/opencv_objdetect.java:527
public static class HOGDescriptor extends Pointer {
public HOGDescriptor();
...
public native void setSVMDetector(CvArr _svmdetector);
...
public native void compute(CvArr img, FloatPointer descriptors, CvSize winStride, CvSize padding, CvPoint locations);
public native void detect(CvArr img, CvPoint foundLocations, DoublePointer weights, double hitThreshold, CvSize winStride, CvSize padding, CvPoint searchLocations);
public native void detect(CvArr img, CvPoint foundLocations, double hitThreshold, CvSize winStride, CvSize padding, CvPoint searchLocations);
public native void detectMultiScale(CvArr img, CvRect foundLocations, double hitThreshold, CvSize winStride, CvSize padding, double scale, int groupThreshold);
public native void detectMultiScale(CvArr img, CvRect foundLocations, DoublePointer foundWeights, double hitThreshold, CvSize winStride, CvSize padding, double scale, double finalThreshold, boolean useMeanshiftGrouping);
public native void detectMultiScale(CvArr img, CvRect foundLocations, double hitThreshold, CvSize winStride, CvSize padding, double scale, double finalThreshold, boolean useMeanshiftGrouping);
...
};
现在,如您在opencv_core.java中看到的那样,IplImage包装器对象扩展了CvArr:
// javacv/cpp/opencv_core.java:410
public static class IplImage extends CvArr {
...
};
因此,您不必进行任何转换.
这是使用HOGDescriptor.detectMultiScale的示例:
IplImage img = cvLoadImage("image.jpg");
CvRect foundRects = new CvRect(null);
HOGDescriptor hog = new HOGDescriptor();
FloatPointer svm = HOGDescriptor.getDefaultPeopleDetector();
hog.setSVMDetector(svm);
hog.detectMultiScale(img, foundRects, 0, cvSize(8,8), cvSize(32,32), 1.05, 2);
内容总结
以上是互联网集市为您收集整理的在javacv中将IplImage转换为Mat全部内容,希望文章能够帮你解决在javacv中将IplImage转换为Mat所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。