簡體   English   中英

用於模板匹配的OpenCV閱讀圖像

[英]OpenCV Reading Image for Template Matching

我在Java中使用OpenCV,使用eclipse進行開發,並且以這種方式讀取圖像以進行模板匹配。

String inFile = "C:/image.png";
Mat img = Highgui.imread(inFile);

很好,但是我的圖像不在本地計算機中。 我應該比較mysql數據庫中服務器上的2000個映像。 將2000張圖像保存到我的計算機,然后讀取它們沒有任何意義。

所以我需要的是Highgui.imread(inFile)讀取圖像:Highgui.imread(Image inImage)或Highgui.imread(File inFile),我找不到要編輯/修改的Java源代碼。 我需要某種方式將來自mysql數據庫的圖像轉換為Mat類型以進行比較(模板匹配)...

更多信息:我有一個帶有以下列的mysql表:ID,名稱,描述,Image1,Image2。 Image1和2列的類型為“ mediumblob”,當右鍵單擊“ MySQL Workbench”中的Image1或Image2列時,我選擇“在編輯器中打開值”,然后有3個標簽; 二進制,文本,圖像,在圖像處我的圖像完美顯示。 圖片類型為png。 最后,我想比較Image1和Image2。 Image2是inFile,Image1是templateFile。

對不起,我以為我的問題很清楚。 我將嘗試改寫它。 我有一台本地計算機和一台服務器。 圖像存儲在服務器上的mysql數據庫中。 我想從本地計算機運行一個應用程序,該應用程序檢索/訪問服務器上的2張圖像,然后通過OpenCV模板匹配比較它們。 Afaik您無法使用/server/home/user/mysql/image_table/mypicture.png訪問mysql的列,由於“ guneykayim”的建議,我正在寫這篇文章。 所以我打算如何檢索圖像,還沒有嘗試過,但是計划是:

Blob imageBlob = resultSet.getBlob(yourBlobColumnIndex);
InputStream binaryStream = imageBlob.getBinaryStream(0, imageBlob.length());

要么

InputStream binaryStream = resultSet.getBinaryStream(yourBlobColumnIndex);

要么

try{
    Class.forName(driverName);
    con = DriverManager.getConnection(url+dbName,userName,password);
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery("select image from image");
    int i = 0;
    while (rs.next()) {
        InputStream in = rs.getBinaryStream(1);
        OutputStream f = new FileOutputStream(new File("test"+i+".jpg"));
        i++;
        int c = 0;
        while ((c = in.read()) > -1) {
            f.write(c);
        }
        f.close();
        in.close();
    }
}catch(Exception ex){
    System.out.println(ex.getMessage());
}

我的問題:我想比較從mysql數據庫檢索到的2張圖像。

Highgui.imread(); 

此方法需要一個String,但是我想提供InputStream或OutputStream文件...就像我說的那樣,我不想在本地計算機上保存2000個圖像。 我也歡迎其他方式。

最終最簡單的重述 :如何在存儲在mysql數據庫中的2張圖像上使用Java OpenCV的模板匹配。

換句話說,如何將InputStream對象轉換為Mat對象?

謝謝閱讀。

我在這里找到了對這個家伙的榮譽,他是我的英雄:)完美工作,如果您想要原始顏色而不是灰度的圖像,則應將Highgui.IMREAD_GRAYSCALE更改為Highgui.IMREAD_UNCHANGED以獲取更多信息, 請檢查

暫無
暫無

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

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