簡體   English   中英

無法處理來自OpenCV的Unix上的圖像,但Windows上可以使用相同的程序

[英]Can not process the image on unix from opencv but same program works on windows

我已經在Windows平台上測試了我的程序,效果很好。 但是,當我嘗試在Unix的Raspbian上運行它時,在iplcvLoadimage之后並沒有進一步發展。

可能是什么問題呢?

這是我的代碼

 mport com.googlecode.javacv.cpp.opencv_core.CvPoint; import com.googlecode.javacv.cpp.opencv_core.IplImage; import static com.googlecode.javacv.cpp.opencv_core.cvSize; import static com.googlecode.javacv.cpp.opencv_core.cvZero; import static com.googlecode.javacv.cpp.opencv_core.cvMinMaxLoc; import static com.googlecode.javacv.cpp.opencv_core.IPL_DEPTH_32F; import static com.googlecode.javacv.cpp.opencv_core.cvCreateImage; import static com.googlecode.javacv.cpp.opencv_imgproc.cvMatchTemplate; import static com.googlecode.javacv.cpp.opencv_highgui.cvLoadImage; import static com.googlecode.javacv.cpp.opencv_imgproc.CV_TM_SQDIFF; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import org.opencv.core.Core; public class MatchTemplateTest { public static HashMap<String,Double> getPatternMatch(String img) { ArrayList<String>names=new ArrayList<>(); HashMap<String,Double> MatchMap=new HashMap<>(); File []f=null; try { String path=new File(new File(".").getCanonicalPath()+"/Output"+"/Logo").getAbsolutePath(); f=new File(path).listFiles(); } catch (Exception e) { } IplImage src=null; try { // this is where the problem is src= cvLoadImage(img,0); // can not process further } catch (Exception e) { System.out.println("ERROR "+e); } 

如果問題在於讀取圖像,則有兩種可能性

  1. 圖像不存在,或者圖像路徑錯誤。 在* nix中,路徑以斜杠“ /”分隔,例如/home/asharma/data/myimage.pgm,但是在Windows中,路徑以反斜杠分隔,例如C:\\ User \\ Data \\ My Image.pgm
  2. 圖像的圖像解碼器在庫的版本中不存在。 例如,如果圖像為PNG格式,但是opencv沒有使用PNG編譯,則您將無法讀取圖像。

System.out.println("ERROR "+e);的輸出是什么System.out.println("ERROR "+e);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM