Tag: OpenCV

OpenCV HoughLinesP如何检测线是相交?

我试图让OpenCV检测我的纸张图像的角落。 到目前为止,我能够检测到边缘,HoughLinesP能够检测到我的线条,我想。 我的代码如下: Imgproc.HoughLinesP(matDrawing, matLines, 1.0, Math.PI / 180, 70, 30.0, 10.0) val arrayListCorners = ArrayList() for (i in 0 until matLines.rows()) { for (j in i + 1 until matLines.rows()) { val arrayLine1 = matLines.get(i, 0) val arrayLine2 = matLines.get(j, 0) // Detect if arrayLine1 and arrayLine2 did intersect? } } 我需要帮助,如果我怎么能检测两条线是否相交。 我需要我的arrayListCorners正好返回4,以便能够在代码的后面部分传递条件。 我正在使用Kotlin。 […]

OpenCV:在Android上,将Kotlin中的Mat与Scalar相乘

我正在使用Camera API 2编写Android应用程序。它以不同的曝光值在连拍模式下拍摄3张照片,并将它们与OpenCV(3.0.0)合并。 合并我的意思是Mertens算法,这是在照片模块中可用。 为了将结果保存为设备上的图像,我需要将其与标量相乘。 如果我不这样做,那么最终的图像是黑色的。 fun multiply(src: Mat): Mat { val scalar = Scalar(255.0,255.0,255.0) val dest = Mat() Core.multiply(src, scalar, dest) return dest } 源图像(src)是320×240 CV_32FC3。 但乘法失败: android-pack/opencv/modules/core/src/arithm.cpp:1987: error: (-209) The operation is neither ‘array op array’ (where arrays have the same size and the same number of channels), nor ‘array op scalar’, nor […]

OpenCV帧混合只会导致蓝色

我试图平均每30帧的视频创建一个模糊的timelapse。 我有视频阅读和视频写作工作,但有些不对,因为我只看到蓝色的频道! (或正在写入蓝色的一个通道)。 有任何想法吗? 或者更好的方法来做到这一点? 我是OpenCV的新手。 代码是在Kotlin,但我认为这应该是相同的问题,如果这是Java或Python或任何其他。 val videoCapture = VideoCapture(parsedArgs.inputFile) val frameSize = Size( videoCapture.get(Videoio.CV_CAP_PROP_FRAME_WIDTH), videoCapture.get(Videoio.CV_CAP_PROP_FRAME_HEIGHT)) val fps = videoCapture.get(Videoio.CAP_PROP_FPS) val videoWriter = VideoWriter( parsedArgs.outputFile, VideoWriter.fourcc('M', 'J', 'P', 'G'), fps, frameSize) val image = Mat(frameSize,CV_8UC3) val blended = Mat(frameSize,CV_64FC3) println("Size: $frameSize fps:$fps over $frameCount frames") try { while (videoCapture.read(image)) { val frameNumber = videoCapture.get(Videoio.CAP_PROP_POS_FRAMES).toInt() […]

与Kotlin一起使用JavaCV

我目前正在尝试在Kotlin中使用JavaCV开始一个项目。 我使用IntelliJ Idea作为我的IDE。 我正在使用JavaCV 1.3.2和OpenCV 3.20。 这是我为OpenCV模块的依赖设置: 和JavaCV: 我有opencv之前javacv依赖。 为了测试OpenCV的存在和有效性,我写了下面的测试。 因为我可以loadLibrary和版本号显示正确,我可以假设OpenCV实际上工作。 import org.opencv.core.Core import org.opencv.core.Mat import org.opencv.core.CvType import org.opencv.core.Scalar import org.bytedeco.javacv.OpenCVFrameGrabber fun main(args : Array<String>) { println("Test Built Successfully") System.loadLibrary(Core.NATIVE_LIBRARY_NAME) println("Running OpenCV Version ${Core.VERSION}") val grabber = OpenCVFrameGrabber(1) } 我们初始化grabber rasies的路线有以下例外: Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_core in java.library.path Caused by: java.lang.UnsatisfiedLinkError: no opencv_imgproc320 […]