我有这个opencv代码。 这使得我在页面中找到的图像卷积。 我想尝试一下,但它给出了以下错误,我对openCV了解不多。 我需要帮助。
错误:OpenCV错误:cv :: Mat :: locateROI中的断言失败(dims< = 2&& step [0]> 0),文件C:\ build \ master_winpack-bindings- win64-vc14-static \ opencv \ modules \ core \ src \ matrix.cpp,第949行
的
的public class main {
public static void main (String [ ] args) {
System.out.println ("hola");
try {
int kernelSize = 3;
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
Mat source = Imgcodecs.imread("logo.png", Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE);
Mat destination = new Mat(source.rows(),source.cols(),source.type());
Mat kernel = new Mat(kernelSize,kernelSize, CvType.CV_32F){
{
put(0,0,0);
put(0,1,0);
put(0,2,0);
put(1,0,0);
put(1,1,1);
put(1,2,0);
put(2,0,0);
put(2,1,0);
put(2,2,0);
}
};
Imgproc.filter2D(source, destination, -1, kernel);
Imgcodecs.imwrite("original.jpg", destination);
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
}
的
答案 0 :(得分:2)
有同样的错误并且遵循@Miki非常有价值的提示。在我的情况下,由于不适合的位深度,图像没有正确加载。 32而不是8位灰度图像。
答案 1 :(得分:0)
我之前有相同的确切错误,所以当我写完图片的整个路径时,我的代码工作得非常好,所以要小心图片的扩展并确保你的图片存在
这是我做的:
pic = cv2.imread('C:\Users\WSI\Desktop\python_scripts\hakuoki.jpg',cv2.IMREAD_COLOR)
答案 2 :(得分:0)
我有同样的错误,我在文件名中写了png而不是jpg。确保以正确的扩展名/名称加载图像
答案 3 :(得分:-1)
看起来您的源和目标是单通道,而您的内核是3通道。