最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java?OpenCV圖像處理之SIFT角點檢測詳解

 更新時間:2022年02月18日 15:23:53   作者:深色風信子  
SIFT,即尺度不變特征變換,是用于圖像處理領域的一種描述。這種描述具有尺度不變性,可在圖像中檢測出關鍵點,是一種局部特征描述子。本文將詳細介紹一下Java?OpenCV圖像處理中的SIFT角點檢測,需要的可以參考一下

介紹

在某些情況下對圖像進行縮放后,角點信息可能會丟失,這時候Harri便不能檢測到所有的角點。SIFT(scale-invariant feature transform) 剛好克服了這個問題,對圖像特征的檢測,盡量不受圖像尺寸變化的影響.SIFT并不直接檢測關鍵點。

其中關鍵點的檢測是由DOG(Difference of Gaussians)檢測完成的(DOG是通過不同的高斯濾波器對同一張圖像進行處理,來得到關鍵點的)。SIFT僅通過特征向量來描述特征點周圍的像素情況。

示例代碼

package com.xu.opencv;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.Scalar;
import org.opencv.features2d.Features2d;
import org.opencv.features2d.SIFT;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

/**
 * @Title: Image.java
 * @Description: OpenCV-4.0.0 測試文件
 * @Package com.xu.Image
 * @author: hyacinth
 * @date: 2022年2月18日12點20分
 * @version: V-1.0.0
 * @Copyright: 2019 hyacinth
 */
public class Image {

    static {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    }

    public static void main(String[] args) {
        sift();
    }

    /**
     * OpenCV-4.1.0 SIFT 角點檢測
     *
     * @return void
     * @Author: hyacinth
     * @Title: harris
     * @Description: TODO
     * @date: 2022年2月18日12點32分
     */
    public static void sift() {
        Mat src = Imgcodecs.imread("D:\\OneDrive\\桌面\\1.png");
        Mat gray = new Mat();
        Imgproc.cvtColor(src, gray, Imgproc.COLOR_BGR2GRAY);
        SIFT sift = SIFT.create(8000);
        MatOfKeyPoint point = new MatOfKeyPoint();
        sift.detect(gray, point);
        Features2d.drawKeypoints(src, point, src, new Scalar(0, 0, 255), Features2d.DrawMatchesFlags_DRAW_RICH_KEYPOINTS);
        HighGui.imshow("SIFT 角點檢測", src);
        HighGui.waitKey(0);
    }
}    

效果圖

補充

角點檢測除了有SIFT算法,還有FAST算法

FAST(Features from Accelerated Segment Test)算法會在像素周圍繪制一個圓,圓內包含16個像素,FAST算法是將圓內的像素分別與加上一個閾值的圓心像素作比較,若圈內出現連續(xù)的幾個像素比加上一個閾值的像素還亮或是暗,則可認為圓心是角點.FAST是一個很有效率的檢測算法,但是需要確定閾值參數來檢測角點。

BRIEF(Binary Robust Independent Elementary Features)在OpenCV中主要是通過detectAndCompute()來實現,這個函數包含兩個部分,檢測和計算,同時也返回兩個結果.一個是檢測到的關鍵點,一個是描述符.SIFT和SURF也是這樣.關鍵點的描述符包含了圖像的關鍵信息,可看作是圖像的另一種表現形式,在比較兩個圖像的時候可以通過比較兩個圖像的特征描述來實現.也可以用來做圖像特征的匹配。

下面將展示通過FAST算法進行角點檢測的示例代碼,需要的可以參考一下

package com.xu.opencv;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.Scalar;
import org.opencv.features2d.Features2d;
import org.opencv.features2d.ORB;
import org.opencv.features2d.SIFT;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

/**
 * @Title: Image.java
 * @Description: OpenCV-4.0.0 測試文件
 * @Package com.xu.Image
 * @author: hyacinth
 * @date: 2022年2月18日12點20分
 * @version: V-1.0.0
 * @Copyright: 2019 hyacinth
 */
public class Image {

    static {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    }

    public static void main(String[] args) {
        fast();
    }

    public static void fast() {
        Mat src = Imgcodecs.imread("D:\\OneDrive\\桌面\\5.jpeg");
        Mat gray = new Mat();
        Imgproc.cvtColor(src, gray, Imgproc.COLOR_BGR2GRAY);
        ORB orb = ORB.create(500, 1.2f, 8, 31, 0, 2, ORB.HARRIS_SCORE, 31, 20);
        MatOfKeyPoint point = new MatOfKeyPoint();
        orb.detect(gray, point);
        Features2d.drawKeypoints(src, point, src, new Scalar(0, 0, 255), Features2d.DrawMatchesFlags_DRAW_RICH_KEYPOINTS);
        HighGui.imshow("FAST 角點檢測", src);
        HighGui.waitKey(0);
    }
}

效果圖

到此這篇關于Java OpenCV圖像處理之SIFT角點檢測詳解的文章就介紹到這了,更多相關Java OpenCV 角點檢測內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java判斷字節(jié)流是否是 UTF8編碼方法示例

    Java判斷字節(jié)流是否是 UTF8編碼方法示例

    這篇文章主要我大家介紹了Java判斷字節(jié)流是否是 UTF8編碼方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Java中靜態(tài)代碼塊、構造代碼塊、構造函數和普通代碼塊的區(qū)別

    Java中靜態(tài)代碼塊、構造代碼塊、構造函數和普通代碼塊的區(qū)別

    在Java中,靜態(tài)代碼塊、構造代碼塊、構造函數、普通代碼塊的執(zhí)行順序是一個筆試的考點,通過這篇文章希望大家能徹底了解它們之間的執(zhí)行順序,需要的朋友可以參考下
    2023-05-05
  • springboot集成opencv實現人臉識別功能的詳細步驟

    springboot集成opencv實現人臉識別功能的詳細步驟

    大家都知道OpenCV是一個基于BSD許可(開源)發(fā)行的跨平臺計算機視覺和機器學習軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統(tǒng)上今天通過本文給大家分享springboot集成opencv實現人臉識別,感興趣的朋友一起看看吧
    2021-06-06
  • SpringBoot security安全認證登錄的實現方法

    SpringBoot security安全認證登錄的實現方法

    這篇文章主要介紹了SpringBoot security安全認證登錄的實現方法,也就是使用默認用戶和密碼登錄的操作方法,本文結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • Spring Boot 開發(fā)環(huán)境熱部署詳細教程

    Spring Boot 開發(fā)環(huán)境熱部署詳細教程

    這篇文章主要介紹了Spring Boot 開發(fā)環(huán)境熱部署,本文給大家介紹了Spring Boot 開發(fā)環(huán)境熱部署的原理及快速配置方法,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 解決idea更新maven倉庫的圖文教程

    解決idea更新maven倉庫的圖文教程

    這篇文章主要介紹了解決idea更新maven倉庫的圖文教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • SpringBoot中通過AOP整合日志文件的實現

    SpringBoot中通過AOP整合日志文件的實現

    本文主要介紹了SpringBoot中通過AOP整合日志文件的實現,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Java安全之Mojarra?JSF反序列化講解

    Java安全之Mojarra?JSF反序列化講解

    JSF?和類似的?Web?技術之間的區(qū)別在于?JSF?使用?ViewStates(除了會話)來存儲視圖的當前狀態(tài)(例如,當前應該顯示視圖的哪些部分),這篇文章主要介紹了Java安全之Mojarra?JSF反序列化知識講解,包括漏洞復現和漏洞分析,需要的朋友可以參考下
    2022-11-11
  • Spring中@Configuration注解的使用場景

    Spring中@Configuration注解的使用場景

    這篇文章主要介紹了Spring中@Configuration注解的使用場景,@Configuration注解是從Spring?3.0版本開始加入的一個使Spring能夠支持注解驅動開發(fā)的標注型注解,主要用于標注在類上,需要的朋友可以參考下
    2023-11-11
  • Spring中HandlerMapping接口源碼詳解

    Spring中HandlerMapping接口源碼詳解

    這篇文章主要介紹了Spring中HandlerMapping接口源碼詳解,RequestMappingHandlerMapping類就是實現此接口并將容器中所有的控制器的RequestMappingInfo請求和HandlerMethod注冊到內存之中,需要的朋友可以參考下
    2023-11-11

最新評論

榆林市| 青河县| 邵武市| 庆元县| 城口县| 普格县| 扶余县| 绥芬河市| 黔西县| 乌兰浩特市| 阿克陶县| 商南县| 武穴市| 雷波县| 鄄城县| 定州市| 扎兰屯市| 砀山县| 贡山| 盈江县| 同心县| 藁城市| 定州市| 韶关市| 游戏| 虞城县| 阿拉尔市| 南阳市| 鲜城| 建德市| 富源县| 集贤县| 屏东市| 北碚区| 石河子市| 新干县| 甘洛县| 呼图壁县| 邵武市| 泸水县| 邯郸县|