web-dev-qa-db-fra.com

Erreur Java- OpenCV: Erreur OpenCV: l'assertion a échoué (dims <= 2 && step [0]> 0)

J'ai ce code d'opencv. Ce qui fait une convolution à une image que j'ai trouvée dans une page. Je voulais l'essayer, mais cela donne l'erreur suivante et je ne connais pas grand chose à l'openCV. J'ai besoin d'aide.

Erreur: OpenCV Erreur: échec de l'assertion (dims <= 2 && step [0]> 0) dans cv :: Mat :: LocateROI, fichier C:\build\master\winpack-bindings-win64-vc14-static\opencv\modules\core\src\matrix.cpp, ligne 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());
  }
   }

}

A eu la même erreur et a suivi le très précieux indice de @Miki. Dans mon cas, l'image n'a pas été chargée correctement à cause d'une résolution en bits inappropriée. 32 au lieu de 8 bits pour une image en niveaux de gris.

2
EikeMike

J'avais la même erreur auparavant alors quand j'ai écrit tout le chemin de l'image, mon code a très bien fonctionné, alors soyez prudent avec l'extension de l'image et assurez-vous que votre image existe 

Voici ce que j'ai fait :

pic = cv2.imread('C:\Users\WSI\Desktop\python_scripts\hakuoki.jpg',cv2.IMREAD_COLOR)
0
Bea