Tag: opencv

onPictureTaken()出错,问题是无法将RGB转换为GRAY,程序停止从cvtcolor()函数运行。

嘿家伙我这个function遇到麻烦,这个function在拍照后调用,现在我想使用图像数据进行距离变换。 并计算我知道哪里有问题的对象的确切数量,但我无法解决它,我认为问题是在Imgproc.cvtColor(m,mGray,Imgproc.COLOR_BGRA2GRAY)当我调试程序停止运行此时所以请回答我,如果你找到了什么; 先感谢您 @Override public void onPictureTaken(byte[] data, Camera camera) { Log.i(TAG, “Divyesh Saving a bitmap to file”); // The camera preview was automatically stopped. Start it again. mCamera.startPreview(); Log.i(TAG, “Divyesh Start preview”); mCamera.setPreviewCallback(this); Log.i(TAG, “Divyesh Start preview callback”); // Write the image in a file (in jpeg format) try { FileOutputStream fos = new […]

红色镶边交通标志的颜色阈值

我想检测所有红色镶边交通标志(三角形和圆形)。 该算法必须高效且稳健,才能在现实世界中工作,因此我决定使用HSV空间,因为它是光不变的。 我遇到了检测红色对象的问题 ,答案是使用HSV的这个值范围:代码是用C ++编写的: inRange(hsv, Scalar(0, 70, 50), Scalar(10, 255, 255), mask1); inRange(hsv, Scalar(170, 70, 50), Scalar(180, 255, 255), mask2); Mat1b mask = mask1 | mask2; 由于我使用Java的OpenCV,我尝试过,但我发现不可能进行按位OR操作。 所以我尝试手动实现它而不是使用OpenCV。 我也尝试了相同的红色值范围,遗憾的是结果很可怕: 这是我的代码 Mat hsv = new Mat(); Mat rgb = Highgui.imread(scene, Highgui.CV_LOAD_IMAGE_COLOR); Imgproc.cvtColor(rgb, hsv, Imgproc.COLOR_RGB2HSV); Mat thresh = new Mat(hsv.size(), CvType.CV_8UC1); for(int x=0;x<hsv.rows();x++){ for(int y=0;y=H && […]

Javacv + Yosemite + Eclipse:项目未运行,java.lang.UnsatisfiedLinkError

好吧,这个问题已经多次面对,但在这种情况下我无法解决。 几天前我把我的mac升级到Yosemite。 在此之前,该项目开始没有问题! (我的意思是,对于Mavericks OS)Mac是去年的13.3英寸Pro Retina。 我正在用Java实现一个face识别器,所以我需要OpenCV的API和Javacv的包装器(我使用的是0.9版本)。 按照Javacv / Javacpp开发人员的指示,我只是链接到我的eclipse / java项目:javacv.jar,javacpp.jar和opencv-macosx-x86_64.jar。 Eclipse告诉我一切都很好,但当我试图让它运行时,我得到: Init, please wait… Creating detector… Exception in thread “main” java.lang.UnsatisfiedLinkError: /Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64/libjniopencv_core.dylib: dlopen(/Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64/libjniopencv_core.dylib, 1): Library not loaded: @rpath/libopencv_core.2.4.dylib Referenced from: /Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64/libjniopencv_core.dylib Reason: no suitable image found. Did find: /Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64/./libopencv_core.2.4.dylib: malformed mach-o image: load command #12 length (0) too small in /Users/*/Desktop/javacv-bin/opencv-macosx-x86_64/org/bytedeco/javacpp/macosx-x86_64/./libopencv_core.2.4.dylib at java.lang.ClassLoader$NativeLibrary.load(Native […]

JavaCV透视校正

我转换了使用OpenCV和C ++实现的透视校正代码: https : //opencv-code.com/tutorials/automatic-perspective-correction-for-quadrilateral-objects/ 获取以Java实现的以下OpenCV代码: public class project { static Point2f center; public static void main(String args[]) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); center = new Point2f(0,0); Mat src = new Mat(); src = Highgui.imread(“image.jpg”); if(src == null) { System.out.println(“Image not loaded”); System.exit(1); } Mat bw = new Mat(); Imgproc.cvtColor(src, bw, Imgproc.COLOR_BGR2GRAY); Imgproc.blur(bw, bw, new Size(3,3)); Imgproc.Canny(bw, bw, […]

Android:将calcOpticalFlowPyrLK与MatOfPoint2f一起使用

我无法将calcOpticalFlowPyrLK与MatOfPoint2f一起使用。 我宣布我的类型如下: private Mat mPreviousGray; // previous gray-level image private List points; // tracked features private MatOfPoint initial; // initial position of tracked points 并使用以下内容查找和跟踪function(我的代码基于Robert Laganiere在C ++中的示例光流应用程序。) // Called whenever a new frame m is captured private void OpticalFlow(Mat m, int maxDetectionCount, double qualityLevel, double minDistance) { if (points.get(0).total() 0 ) // EMG – 09/22/11 […]

转换Opencv hsv等效于Matlab Hsv

我必须使用opencv开发android代码,代码相当于MATLAB。 在那里我必须阅读图像并将其转换为HSV,我使用以下方法完成此操作: Imgproc.cvtColor(temp, hsv , Imgproc.COLOR_RGB2HSV); 当我迭代在Hue的0-255范围内返回的像素的每个像素值时,在Matlab中它返回的范围为0-1,我不知道如何为它编写等效代码。 我是初学者。我对图像处理知之甚少。

OpenCV C ++转换为Java以进行形状检测问题

我们对openCV Java开发有点新,并遇到了一个问题。 我们正在尝试将此代码转换为适用于Android的Java。 approxPolyDp需要一个MatOfPoint2f,其中我们有’approx’参数。 但是,当我们需要在ifContourConvex之后的if语句中使用这个相同的变量时,它需要一个MatOfPoint。 最初的原始代码是使用ArrayList大约。 我们对此非常困惑,需要在正确的方向上轻推,以了解我们应该做什么。 // Find contours java.util.ArrayList<java.util.ArrayList>(); List contours = new ArrayList(); Mat hierarchy = new Mat(); Imgproc.findContours(bw.clone(), contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE); // java.util.ArrayList approx = new java.util.ArrayList(); MatOfPoint2f approx = new MatOfPoint2f(); Mat dst = img.clone(); for (int i = 0; i < contours.size(); i++) { // Approximate contour with […]

如何为Android Studio打包和链接OpenCV binares和OpenCV Java SDK?

尝试在Android Studio上开始使用OpenCV Java SDK创建一个针对14 – 19的应用程序。 我在这里遵循@Paito定义的步骤: https ://stackoverflow.com/a/20600674/1291489 1)我在.jar中打包libs 2)添加依赖项:…依赖项{ //OpenCV compile files(‘libs/opencv-2.4.8.jar’) compile project(‘:app:libs:opencv’) } 3)复制OpenCV java文件夹 4)为OpenCV创建并修复build.gradle(与引用的源相同) 5)尝试使用该库 import org.opencv.android.OpenCVLoader; … if (!OpenCVLoader.initDebug()) {} 结果:App构建并运行但我得到以下exception: 03-19 19:54:46.144 D/OpenCV/StaticHelper﹕ Trying to get library list 03-19 19:54:46.144 E/OpenCV/StaticHelper﹕ OpenCV error: Cannot load info library for OpenCV 03-19 19:54:46.144 D/OpenCV/StaticHelper﹕ Library list: “” 03-19 19:54:46.144 […]

如何强制Android相机以纵向模式显示,或者让我进行旋转

我是新来的,所以请你好! 我几乎看到了与此相关的所有其他问题并尝试了最多,但我完全感到沮丧。 我只想让我的Android手机以纵向模式显示相机,而不是风景。 我只是修改opencv提供的ImageManipulations示例。 我正在使用opencv 3.01,Android sdk 23版,Android Studio 2.0和带有Android版6.0.1的Nexus 5手机。 这是2016年4月28日,这几乎是所有东西的最新稳定版本。 我已经在AndroidManifest.xml文件中强制应用程序进入纵向模式: android:screenOrientation=”portrait” 并且整个应用程序在纵向模式下正确显示,但显示的摄像机图像旋转90度。 换句话说,如果您将头部向左倾斜90度,您将看到合适的图像。 所以我需要将图像向右旋转。 我尝试使用opencv Tutorial3代码和setDisplayOrientation(90): public void setResolution(Size resolution) { disconnectCamera(); mMaxHeight = resolution.height; mMaxWidth = resolution.width; // mCamera.setDisplayOrientation(90); //* Crashes if placed here connectCamera(getWidth(), getHeight()); mCamera.setDisplayOrientation(90); //* Doesn’t crash if here, but doesn’t work either } 那不起作用。 在任何情况下,本教程都使用在Android版本21中弃用的“camera”类,并替换为“camera2”类。 我没有更进一步,因为我想使用最新的API,但也许camera2中的东西可以工作? 有些人发布了使用“转置”和“翻转”function来旋转图像,我尝试在onCameraFrame方法中做了很多这样的事情: […]

OpenCV Mat处理时间

我想知道OpenCV函数的src(source)和dst(destination)是否有不同的变量会对处理时间产生影响。 我在下面有两个函数可以做同样的事情。 public static Mat getY(Mat m){ Mat mMattemp = new Mat(); Imgproc.cvtColor(m,mMattemp,Imgproc.COLOR_YUV420sp2RGB); Imgproc.cvtColor(mMattemp,mMattemp, Imgproc.COLOR_RGB2HSV); Core.inRange(mMattemp, new Scalar(20, 100, 100), new Scalar(30, 255, 255), mMattemp); return mMattemp; } 与 public static Mat getY(Mat m){ Mat mMattemp_rgb = new Mat(); Mat mMattemp_hsv = new Mat(); Mat mMattemp_ir = new Mat(); Imgproc.cvtColor(m,mMattemp_rgb,Imgproc.COLOR_YUV420sp2RGB); Imgproc.cvtColor(mMattemp_rgb,mMattemp_hsv, Imgproc.COLOR_RGB2HSV); Core.inRange(mMattemp_hsv, new Scalar(20, […]