Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 处理中的OpenCV pyrMeanShiftFilter——矩阵问题_Java_Opencv_Matrix_Processing_Pixels - Fatal编程技术网

Java 处理中的OpenCV pyrMeanShiftFilter——矩阵问题

Java 处理中的OpenCV pyrMeanShiftFilter——矩阵问题,java,opencv,matrix,processing,pixels,Java,Opencv,Matrix,Processing,Pixels,我试图在一个名为Processing的程序中使用OpenCV中的meanshift函数,这是一种基于Java的语言。到目前为止,我知道该函数需要两个mat和两个double[pyramanshiftfiltering(mat,mat,double,double)],mat需要8位和3个通道。但是,当我运行它时,它似乎只适用于图像的上3/4部分,并删除了其余部分 有人知道如何在整个图像上运行此函数吗 示例图像: 问题是,您使用的是列应该位于的行和行应该位于的列。有关更多信息,请查看 所以,每当你有

我试图在一个名为Processing的程序中使用OpenCV中的meanshift函数,这是一种基于Java的语言。到目前为止,我知道该函数需要两个mat和两个double[pyramanshiftfiltering(mat,mat,double,double)],mat需要8位和3个通道。但是,当我运行它时,它似乎只适用于图像的上3/4部分,并删除了其余部分

有人知道如何在整个图像上运行此函数吗

示例图像:


问题是,您使用的是列应该位于的行和行应该位于的列。有关更多信息,请查看

所以,每当你有这个:

new Mat( width, height, CvType.CV_8UC3);
颠倒顺序

new Mat( height, width, CvType.CV_8UC3);
另外,我注意到您有一个4通道图像(ARGB),toMat函数也有4个通道,但是您创建的Mat只有3个
CV\u 8UC3
,您应该使用4个
CV\u 8UC4
(在java中不确定),并且要注意,opencv通常使用的是
BGRA
!!因此,您可能需要正确混合频道


我希望这对您有所帮助

当我颠倒顺序时,图像被扭曲,底部仍然被切断。对于通道,该函数需要8位和3个通道,如果使用4,则会给我一个错误。你知道我如何更改toMat函数,使其具有三个通道吗?@Qwerty最简单的方法(不一定是最有效的)是使用函数和或。Split将为您提供每个通道作为一个垫子,然后加入或混合通道可以创建一个3通道垫子与您想要的。关于宽度和高度,它应该到处改变
new Mat( height, width, CvType.CV_8UC3);