<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了python opencv實現影象矯正的具體程式碼,供大家參考,具體內容如下
一般的我們對影象中的目標進行分析和檢測時,往往目標具有一定的傾斜角度,自然環境中正面向我們的目標實際是很少的,那將這些傾斜的目標“扶正”的過程就就叫做影象矯正。
影象矯正使用的主要技術是透視變換。
python-opencv 透視變換demo如下:
import cv2 import numpy as np img = cv2.imread('/home/pzs/圖片/1.jpeg') result3 = img.copy() img = cv2.GaussianBlur(img,(3,3),0) gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray,50,150,apertureSize = 3) cv2.imwrite("canny.jpg", edges) src = np.float32([[207, 151], [517, 285], [17, 601], [343, 731]]) dst = np.float32([[0, 0], [337, 0], [0, 488], [337, 488]]) m = cv2.getPerspectiveTransform(src, dst) result = cv2.warpPerspective(result3, m, (337, 488)) cv2.imshow("result", result) cv2.waitKey(0)
主要是使用cv2.warpPerspective()函數
透視變換使用很簡單,關鍵是如何找到目標的4個頂點。
如何找到目標的4個頂點
如何找到這4個頂點:
方法有很多種,如:直線檢測,輪廓檢測,最小外接矩形等。
使用輪廓檢測方式:
import cv2 import imutils img = cv2.imread('1.jpeg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) blurred = cv2.GaussianBlur(gray, (5, 5), 0) dilate = cv2.dilate(blurred, cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))) edged = cv2.Canny(dilate, 30, 120, 3) # 邊緣檢測 cnts = cv2.findContours(edged.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 輪廓檢測 cnts = cnts[0] if imutils.is_cv2() else cnts[1] # 判斷是opencv2還是opencv3 docCnt = None if len(cnts) > 0: cnts = sorted(cnts, key=cv2.contourArea, reverse=True) # 根據輪廓面積從大到小排序 for c in cnts: peri = cv2.arcLength(c, True) # 計算輪廓周長 approx = cv2.approxPolyDP(c, 0.02*peri, True) # 輪廓多邊形擬合 # 輪廓為4個點表示找到紙張 if len(approx) == 4: docCnt = approx break for peak in docCnt: peak = peak[0] cv2.circle(img, tuple(peak), 10, (255, 0, 0)) cv2.imshow('img', img) cv2.waitKey(0)
1、對圖片進行輪廓檢測
2、對檢測出的輪廓進行多邊形逼近
3、多邊形為四邊形且輪廓面積最大的圖形為紙張
4、輸出標記四個定點
cv2.approxPolyDP() 多邊形逼近
重點講解這個函數
作用:
對目標影象進行近似多邊形擬合,使用一個較少頂點的多邊形去擬合一個曲線輪廓,要求擬合曲線與實際輪廓曲線的距離小於某一閥值。
函數原形:
cv2.approxPolyDP(curve, epsilon, closed) -> approxCurve
引數:
curve : 影象輪廓點集,一般由輪廓檢測得到
epsilon : 原始曲線與近似曲線的最大距離,引數越小,兩直線越接近
closed : 得到的近似曲線是否封閉,一般為True
返回值:
approxCurve :返回的擬合後的多邊形頂點集。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45