GVKun编程网logo

OpenCV Error: Assertion failed (queryDescriptors.type() == trainDescCollection[0].type()) in knnM...

14

本文将介绍OpenCVError:Assertionfailed(queryDescriptors.type()==trainDescCollection[0].type())inknnM...的详细

本文将介绍OpenCV Error: Assertion failed (queryDescriptors.type() == trainDescCollection[0].type()) in knnM...的详细情况,。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于Android 中使用 OpenCV3.3.0 进行图片比较报错。OpenCV Error:Assertion failed、cannot convert t (type interface {}) to type string: need type assertion、Composer\Downloader\TransportException ... Failed to enable crypto,failed to open stream: operati...、cv2.error (-215:Assertion failed) reader.ptr != NULL in function cvDrawContours的知识。

本文目录一览:

OpenCV Error: Assertion failed (queryDescriptors.type() == trainDescCollection[0].type()) in knnM...

OpenCV Error: Assertion failed (queryDescriptors.type() == trainDescCollection[0].type()) in knnM...

确认两个:

1、图像是灰度的

// Read in the image

Mat img = imread(entryPath.string(), 1);

cvtColor(img, img, CV_BGR2GRAY);

2、描述子要是 CV_8UC1 形式的(在之前用描述子形成词袋时,描述子格式有转换为 CV_32F 过)。

cv::Mat dictionary = bowTrainer.cluster();

cv::Mat uDictionary;

dictionary.convertTo(uDictionary, CV_8UC1);

bowDE.setVocabulary(uDictionary);

仍然有疑惑详见:https://answers.opencv.org/question/17460/how-to-use-bag-of-words-example-with-brief-descriptors/

Android 中使用 OpenCV3.3.0 进行图片比较报错。OpenCV Error:Assertion failed

Android 中使用 OpenCV3.3.0 进行图片比较报错。OpenCV Error:Assertion failed

opencv-3.3.0-android-sdk
AndroidStudio2.3.3
Nexus6, Android6.0

private void compareImg(Bitmap bitmap1, Bitmap bitmap2){ 
    Mat mat1 = new Mat(); 
    Mat mat2 = new Mat(); 
 
    Utils.bitmapToMat(bitmap1, mat1); // 将bitmap数据放入Mat 
    Utils.bitmapToMat(bitmap2, mat2); //  
 
    Mat matGray1 = new Mat(); 
    Mat matGray2 = new Mat(); 
 
    Imgproc.cvtColor(mat1, matGray1, Imgproc.COLOR_BGR2GRAY); // 转换彩色数据为灰度数据 
    Imgproc.cvtColor(mat2, matGray2, Imgproc.COLOR_BGR2GRAY); 
 
    matGray1.convertTo(matGray1, CvType.CV_32F); 
    matGray2.convertTo(matGray2, CvType.CV_32F); 
 
    double target = Imgproc.compareHist(matGray1, matGray2, Imgproc.CV_COMP_CORREL); // 报错的代码 
}

出现的错误反馈:

com.cuiweiyou.testopencv E/cv::error(): 
  OpenCV Error: 
    Assertion failed (A.size == arrays[i0]->size) 
    in void cv::NAryMatIterator::init(const cv::Mat**, cv::Mat*, uchar**, int), 
    file /build/master  pack-android/opencv/modules/core/src/matrix.cpp, line 4790

com.cuiweiyou.testopencv E/org.opencv.imgproc: 
  imgproc::compareHist  10() caught cv::Exception: /build/master  pack-android/opencv/modules/core/src/matrix.cpp:4790: 
    error: (-215) A.size == arrays[i0]->size 
    in function void cv::NAryMatIterator::init(const cv::Mat**, cv::Mat*, uchar**, int)

com.cuiweiyou.testopencv E/AndroidRuntime: 
  FATAL EXCEPTION: 
    main Process: com.cuiweiyou.testopencv, PID: 9817
    CvException [org.opencv.core.CvException: cv::Exception: /build/master  pack-android/opencv/modules/core/src/matrix.cpp:4790: 
      error: (-215) A.size == arrays[i0]->size 
        in function void cv::NAryMatIterator::init(const cv::Mat**, cv::Mat*, uchar**, int)]
      at org.opencv.imgproc.Imgproc.compareHist  0(Native Method)
      at org.opencv.imgproc.Imgproc.compareHist(Imgproc.java:767)

我尝试修改这行代码里的最后参数 "Imgproc.cvtColor (mat1, matGray1, Imgproc.COLOR BGR2GRAY);",使用 "Imgproc.COLOR BGRA2GRAY" 或其它几个也失败。

请网友帮忙,谢谢!
 

cannot convert t (type interface {}) to type string: need type assertion

cannot convert t (type interface {}) to type string: need type assertion

问题:
在使用interface表示任何类型时,如果要将interface转为某一类型,直接强制转换是不行的,例如:

var t interface{} = "abc"

s := string(t)

cannot convert t(type interface {}) to type string: need type assertion

这样是不行的,需要进行type assertion类型断言,具体使用方法请参考:
golang 任何类型interface{}

更多信息:
http://www.jb51.cc/article/p-amhitjiw-bnz.html

Composer\Downloader\TransportException ... Failed to enable crypto,failed to open stream: operati...

Composer\Downloader\TransportException ... Failed to enable crypto,failed to open stream: operati...

failed to open stream: operation failed


 

错误详细信息:

[Composer\Downloader\TransportException] 
The "https://packagist.laravel-china.org/packages.json" file could not be downloaded: Peer certificate CN=`*.phphub.org'' did not match expected CN=`packagist.laravel-china.org''
Failed to enable crypto 
failed to open stream: operation failed
[Composer\Downloader\TransportException]
  Content-Length mismatch, received 3444 bytes out of the expected 299952

错误发生情境:

  使用 composer require 命令下载软件时。

解决办法:

  (1)更换composer镜像源,可以执行尝试以下几种:

    更换成阿里镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

    更换成Laravel China镜像: composer config -g repo.packagist composer https://packagist.laravel-china.org

    更换成中国全量镜像:composer config -g repo.packagist composer https://packagist.phpcomposer.com

  (2)如果更换镜像,还不能下载成功,可能是网络有问题:

      1、(虚拟机环境)可以尝试把静态ip更换为动态获取,桥接改为网络地址转换。

      2、通过ftp或文件共享方式下载然后上传。


 

 

    

 

cv2.error (-215:Assertion failed) reader.ptr != NULL in function cvDrawContours

cv2.error (-215:Assertion failed) reader.ptr != NULL in function cvDrawContours

找到了这个“解决方案”,虽然它不是一个解决方案。 这种情况不断发生的原因是因为我一直在测试的图像中没有任何可识别的形状,因此由于它无法设置“位置”,因此也无法正确调用该函数。 希望遇到此问题的人会看到这一点并检查他们的数据。

,

我刚刚遇到了同样的问题,实际上似乎是因为没有轮廓/形状可以识别。

就我而言,我将 pdf(文本 pdf)的每一页提取为图像。出现此错误是因为输出图像是 1x1 白色像素图像,因此这些“图像”上确实没有轮廓/形状。 如果你遇到和我一样的问题,这里是帮助我解决这个问题的链接: https://github.com/Belval/pdf2image/issues/34

我只需要使用参数 size= 来解决这个问题,如下所示:

from pdf2image import convert_from_path
convert_from_path("test.pdf",size=(3000,))[0].save("out.png")

关于OpenCV Error: Assertion failed (queryDescriptors.type() == trainDescCollection[0].type()) in knnM...的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Android 中使用 OpenCV3.3.0 进行图片比较报错。OpenCV Error:Assertion failed、cannot convert t (type interface {}) to type string: need type assertion、Composer\Downloader\TransportException ... Failed to enable crypto,failed to open stream: operati...、cv2.error (-215:Assertion failed) reader.ptr != NULL in function cvDrawContours等相关内容,可以在本站寻找。

本文标签: