java,blob
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
java blob是什麼,讓我們一起了解一下?
Blob是計算機視覺圖像中的一塊連通區域,Blob分析的就是對前景或背景分離後的二值圖像,進行連通域提取和標記以及計算Blob的一些相關特徵,而且透過Blob提取,還可以獲得相關區域的資訊。
Blob分析的重要一個步驟是連通區域的確定,那麼它的優缺點是什麼?
優點:
Blob在目標跟蹤的優勢有:
1、透過Blob提取,可以獲得相關區域的資訊,這些資訊可以作爲邊緣監測器或者角點檢測器的補充資訊。在目標識別中,Blob可以提供局部的統計資訊和外貌資訊,這些資訊能夠爲目標識別和跟蹤提供依據。
2、可以利用Blob對直方圖進行峯值檢測。
3、Blob還可以作爲紋理分析和紋理識別的基元。
4、透過Blob分析,可以得到目標的個數及其所在區域,在進行目標匹配時,不需要對全局圖像進行搜尋。
缺點:
1、速度過慢,要整個區域作逐點掃描。
2、Blob分析難度大。這是一純幾何學上的問題,一個不規則的形狀,如何計算它的面積、大小沒有簡單易行的算法,太過複雜,運算時間就長,速度就更慢了。
3、實際應用。Blob算法在實際應用中,非常依賴光源。幾乎可以說,Blob算法如果離開了一個可靠的光源設計,則完全不起作用。
那麼java是怎樣對Blob讀寫的?示例如下:
package com.you.sister; import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.sql.Blob;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Properties; public class BlobTest { public static Connection conn;public static Connection getConn() throws Exception {FileInputStream fis = new FileInputStream(new File("jdbc.properties"));Properties prop = new Properties();prop.load(fis);String driver = prop.getProperty("jdbc.driver");String url = prop.getProperty("jdbc.url");String username = prop.getProperty("jdbc.username");String password = prop.getProperty("jdbc.password");Class.forName(driver);return DriverManager.getConnection(url, username, password);}public static void main(String[] args) throws Exception {conn = getConn();readBlob();writeBlob();conn.close();}/*** 從數據庫中讀大對象出來* 儲存在本地*/public static void readBlob() {try {String readSql = "select * from emp where empno = ?";PreparedStatement ps = conn.prepareStatement(readSql);ps.setInt(1, 7369);ResultSet rs = ps.executeQuery();while (rs.next()) {Blob image = rs.getBlob("image");DataOutputStream dos = // 在FileOutputStream中指定檔案輸出路徑new DataOutputStream(new FileOutputStream(7369 + "_image.jpeg"));InputStream fis = image.getBinaryStream();int out;byte[] outByte = new byte [100];// 將blob對象輸入流寫入本地輸出流中while ((out = fis.read(outByte)) != -1) {dos.write(outByte);}fis.close();dos.flush();dos.close();}rs.close();ps.close();} catch (Exception e) {e.printStackTrace();}}/*** 將大對象檔案儲存進數據庫中*/public static void writeBlob() {try {BufferedInputStream fis = new BufferedInputStream(new FileInputStream(new File("D:Tulips.jpg")));// 如果是新插入字段,則將大對象對應字段插入爲empty_clob();// 如果是修改,則可以先update 該行數據,將大對象對應字段設定爲empty_clob();String writeSql = "select * from emp where empno = ? for update";PreparedStatement ps = conn.prepareStatement(writeSql);ps.setInt(1, 7499);conn.setAutoCommit(false);ResultSet rs = ps.executeQuery();while (rs.next()) {oracle.sql.BLOB image = (oracle.sql.BLOB)rs.getBlob("image");BufferedOutputStream bos = new BufferedOutputStream(image.getBinaryOutputStream());int c;// 將實際檔案中的內容以二進制的形式來輸出到blob對象對應的輸出流中while ((c = fis.read()) != -1) {bos.write(c);}fis.close();bos.close();}conn.commit();rs.close();ps.close();} catch (Exception e) {e.printStackTrace();}}}
-
蘋果手機長圖怎麼截圖,蘋果手機截長圖的兩種方法
1、長截圖辦法一iOS13上新之後自帶的長截圖方法,是在我們瀏覽網頁的時候使用的。操作方法:上音量鍵+開關鍵一起按下,然後點開截好的圖片,選擇“整頁”截圖即可。2、長截圖方法二利用QQ實現長截圖。操作方法:首先就是需要我們開啟QQ,然後試着上音量鍵+開關鍵一起按下...
-
省內移動數據流量是指什麼
省內移動數據流量是指你的SIM卡所屬省份的可用GPRS流量,如果出了你的卡所屬的省份,去別的省,那省內移動數據流量就不可以使用,只能使用全國通用流量。移動數據流量有省內流量和全國通用流量,國內流量和省內流量是有所區別的。首先優先度不同:正常情況下,如果用戶在自...
-
關於底噪的意思介紹
1、底噪亦稱背景噪聲,基本所有的好耳機都有底噪,耳機底噪一般都是因爲前端的問題,耳機的靈敏度越高對於底噪就越敏感,一些高靈敏度和低阻抗的耳機會把底噪放大,如果加大音量的情況下,底噪會更加的明顯。2、檢測MP3底噪,一般方法是在夜晚等比較安靜的環境中戴上耳機,播...
-
黑色背景拍照竅門詳解
1、調整拍攝角度,尋找背景:既然是拍攝黑背景,在拍攝前我們儘量選擇深色的背景,這樣也就更加容易達到效果。不過深色不一定要是純黑色,只要顏色較爲深沉,偏向暗色調的均可。拍攝前多多觀察,尋找不同的拍攝角度,以找到有反差的深色作爲背景。要多嘗試不同的角度,直至主體...