欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python opencv 圖像拼接的實現(xiàn)方法

 更新時間:2019年06月27日 14:49:29   作者:gqcngu  
高級圖像拼接也叫作基于特征匹配的圖像拼接,拼接時消去兩幅圖像相同的部分,實現(xiàn)拼接合成全景圖。這篇文章主要介紹了python opencv 圖像拼接,需要的朋友可以參考下

初級的圖像拼接為將兩幅圖像簡單的粘貼在一起,僅僅是圖像幾何空間的轉移與合成,與圖像內(nèi)容無關。高級圖像拼接也叫作基于特征匹配的圖像拼接,拼接時消去兩幅圖像相同的部分,實現(xiàn)拼接合成全景圖。

具有相同尺寸的圖A和圖B含有相同的部分與不同的部分,如圖所示:

           

用基于特征的圖像拼接實現(xiàn)后:

設圖像高為h,相同部分的寬度為wx

拼接后圖像的寬w=wA+wB-wx

因此,可以先構建一個高為h,寬為W*2的空白圖像,將左圖像向右平移wx,右圖像粘貼在右側。則右圖像剛好覆蓋左圖像中的相同部分。最終拼接圖像完成,完成后的圖像左側有寬度為wx的空白即為所檢測出的兩幅圖像的相同部分,可根據(jù)需要選擇是否去除。示例圖如下。

實現(xiàn)上述效果的步驟如下:

1. 采用surft特征檢測算法檢測兩幅圖像的關鍵特征點;

2. 建立FLANN匹配器,采用目前最快的特征匹配(最近鄰搜索)算法FlannBasedMatcher匹配關鍵點

3.從所匹配的全部關鍵點中篩選出優(yōu)秀的特征點(基于距離篩選)

4. 根據(jù)查詢圖像和模板圖像的特征描述子索引得出仿射變換矩陣

5. 獲取左邊圖像到右邊圖像的投影映射關系

6. 透視變換將左圖像放在相應的位置

7. 將有圖像拷貝到特定位置完成拼接

先放python下利用opencv 進行圖像拼接的代碼,環(huán)境為python2.7+opencv2:

#coding: utf-8
import numpy as np
import cv2
leftgray = cv2.imread('1.jpg')
rightgray = cv2.imread('2.jpg')
hessian=400
surf=cv2.SURF(hessian) #將Hessian Threshold設置為400,閾值越大能檢測的特征就越少
kp1,des1=surf.detectAndCompute(leftgray,None) #查找關鍵點和描述符
kp2,des2=surf.detectAndCompute(rightgray,None)
FLANN_INDEX_KDTREE=0 #建立FLANN匹配器的參數(shù)
indexParams=dict(algorithm=FLANN_INDEX_KDTREE,trees=5) #配置索引,密度樹的數(shù)量為5
searchParams=dict(checks=50) #指定遞歸次數(shù)
#FlannBasedMatcher:是目前最快的特征匹配算法(最近鄰搜索)
flann=cv2.FlannBasedMatcher(indexParams,searchParams) #建立匹配器
matches=flann.knnMatch(des1,des2,k=2) #得出匹配的關鍵點
good=[]
#提取優(yōu)秀的特征點
for m,n in matches:
 if m.distance < 0.7*n.distance: #如果第一個鄰近距離比第二個鄰近距離的0.7倍小,則保留
  good.append(m)
src_pts = np.array([ kp1[m.queryIdx].pt for m in good]) #查詢圖像的特征描述子索引
dst_pts = np.array([ kp2[m.trainIdx].pt for m in good]) #訓練(模板)圖像的特征描述子索引
H=cv2.findHomography(src_pts,dst_pts)   #生成變換矩陣
h,w=leftgray.shape[:2]
h1,w1=rightgray.shape[:2]
shft=np.array([[1.0,0,w],[0,1.0,0],[0,0,1.0]])
M=np.dot(shft,H[0])   #獲取左邊圖像到右邊圖像的投影映射關系
dst_corners=cv2.warpPerspective(leftgray,M,(w*2,h))#透視變換,新圖像可容納完整的兩幅圖
cv2.imshow('tiledImg1',dst_corners) #顯示,第一幅圖已在標準位置
dst_corners[0:h,w:w*2]=rightgray #將第二幅圖放在右側
#cv2.imwrite('tiled.jpg',dst_corners)
cv2.imshow('tiledImg',dst_corners)
cv2.imshow('leftgray',leftgray)
cv2.imshow('rightgray',rightgray)
cv2.waitKey()
cv2.destroyAllWindows()

所用圖像為:

   

拼接完成后的圖像為:

測試一下抗干擾能力,所用圖像:

     

拼接結果:

可見,抗干擾能力還是不錯的,在測試中若拼接不成功,則注意以下兩點:

1. 所用兩幅圖像尺寸是否相同,是否有相同的部分。

2. 適當調(diào)整hessian的值。

總結

以上所述是小編給大家介紹的python opencv 圖像拼接的實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

相關文章

  • Python使用Tkinter實現(xiàn)轉盤抽獎器的步驟詳解

    Python使用Tkinter實現(xiàn)轉盤抽獎器的步驟詳解

    這篇文章主要介紹了Python使用Tkinter實現(xiàn)轉盤抽獎器,,本文分場景通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • 一個非常簡單好用的Python圖形界面庫(PysimpleGUI)

    一個非常簡單好用的Python圖形界面庫(PysimpleGUI)

    這篇文章主要介紹了一個非常簡單好用的Python圖形界面庫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • python 計算兩個列表的相關系數(shù)的實現(xiàn)

    python 計算兩個列表的相關系數(shù)的實現(xiàn)

    這篇文章主要介紹了python 計算兩個列表的相關系數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • python刪除服務器文件代碼示例

    python刪除服務器文件代碼示例

    這篇文章主要介紹了python刪除服務器文件代碼示例,列舉了兩個實例,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • 關于numpy中eye和identity的區(qū)別詳解

    關于numpy中eye和identity的區(qū)別詳解

    今天小編就為大家分享一篇關于numpy中eye和identity的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python 處理微信對賬單數(shù)據(jù)的實例代碼

    python 處理微信對賬單數(shù)據(jù)的實例代碼

    本文通過實例代碼給大家介紹了python 處理微信對賬單數(shù)據(jù),代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • 10個常用python自動化腳本

    10個常用python自動化腳本

    本文主要介紹了10個常用python自動化腳本,這些腳本可以幫助自動化完成任務,提高工作效率,文中通過示例代碼介紹的非常詳細,感興趣的可以了解下
    2024-01-01
  • Python中在for循環(huán)中嵌套使用if和else語句的技巧

    Python中在for循環(huán)中嵌套使用if和else語句的技巧

    Python的語法糖非常強大,比如Python中在for循環(huán)中嵌套使用if和else語句的技巧便十分給力,下面我們就舉幾個例子來看詳細的用法:
    2016-06-06
  • python 多進程通信模塊的簡單實現(xiàn)

    python 多進程通信模塊的簡單實現(xiàn)

    這篇文章主要介紹了python 多進程通信模塊的簡單實現(xiàn),需要的朋友可以參考下
    2014-02-02
  • pytorch model.cuda()花費時間很長的解決

    pytorch model.cuda()花費時間很長的解決

    這篇文章主要介紹了pytorch model.cuda()花費時間很長的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論