Python:用numpy+OpenCV快速實(shí)現(xiàn)矯正圖像的功能

透視變換是一個(gè)很實(shí)用的功能,當(dāng)用手機(jī)去拍證件或者名片時(shí),經(jīng)常會(huì)拍歪,或者有邊框。如果你使用過(guò)類似“掃描全能王”的軟件,你應(yīng)該知道,他們會(huì)自動(dòng)把證件矯正并除邊框,它就是通過(guò)透視變換實(shí)現(xiàn)的,和numpy中的仿射變換一樣。

左圖為原圖,右圖為矯正后的圖

1.運(yùn)行環(huán)境


2.代碼

import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('E:\\card2.jpg')
rows, cols = img.shape[:2]
# 原圖中書本的四個(gè)角點(diǎn)
pts1 = np.float32([[69, 163], [704, 62], [162, 675], [970, 411]])
# 變換后分別在左上、右上、左下、右下四個(gè)點(diǎn)
pts2 = np.float32([[0, 1000], [0, 0], [750, 1000], [750, 0]])
# 生成透視變換矩陣
M = cv2.getPerspectiveTransform(pts1, pts2)
# 進(jìn)行透視變換
dst = cv2.warpPerspective(img, M, (750, 1000))
plt.subplot(121), plt.imshow(img[:, :, ::-1]), plt.title('input')
plt.subplot(122), plt.imshow(dst[:, :, ::-1]), plt.title('output')
# img[:, :, ::-1]是將BGR轉(zhuǎn)化為RGB
plt.show()

3.解析

圖中角點(diǎn)坐標(biāo)需要自己設(shè)定

通過(guò)鎖定書的角點(diǎn),并設(shè)定改變后的角點(diǎn),來(lái)達(dá)到矯正圖像的目的。坐標(biāo)原點(diǎn)在圖片左上角!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 來(lái)源:NumPy Tutorial - TutorialsPoint 譯者:飛龍 協(xié)議:CC BY-NC-SA 4...
    布客飛龍閱讀 33,567評(píng)論 6 97
  • 1、通過(guò)CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明AI閱讀 16,214評(píng)論 3 119
  • 經(jīng)常聽(tīng)到前來(lái)咨詢的學(xué)生說(shuō),老師,聽(tīng)您講的要選擇自己熱愛(ài)的事去從事,我覺(jué)得我熱愛(ài)唱歌,我將來(lái)可不可以選擇這樣的道路呢...
    Sophia的麥子閱讀 682評(píng)論 1 3
  • 自從三月份回國(guó)的第三次搬家了,相信這次會(huì)持續(xù)的久一點(diǎn)。 今天想到了我在美國(guó)生活的種種,好的壞的,難忘的痛苦的,都是...
    六月的雨Bill閱讀 538評(píng)論 0 0
  • 是有多久沒(méi)有打開簡(jiǎn)書了,今晚睡不著,就想著該做點(diǎn)事情了。 今天是決心減肥的第一天,自我感覺(jué)還算成功,不過(guò)要更加努力...
    果凍Serena閱讀 350評(píng)論 0 1

友情鏈接更多精彩內(nèi)容