今天完成了機器視覺的課程作業-基於金字塔的模板匹配演算法,就順便記錄一下。本次作業我是通過python+opencv來完成的。這個作業就是乙個模板匹配演算法的基礎上加乙個金字塔的模型來減少計算量,所謂金字塔就是對進行向下取樣,每向下取樣一次,影象就縮小一半,由此減少了計算的量。
原圖和模板圖:
)#轉化為灰度圖
source_img = cv2.cvtcolor(source_img, code=cv2.color_rgb2gray)
#(576, 704)
template_img = cv2.cvtcolor(template_img, code=cv2.color_rgb2gray)
#(59, 205)
""" cv2.namedwindow("source_img")
cv2.namedwindow("template_img")
cv2.imshow("source_img", source_img)
cv2.imshow("template_img", template_img)
cv2.waitkey(0)
cv2.destroywindow("source_img")
cv2.destroywindow("template_img")
"""return source_img, template_img
defpyramid_down
(source_img, template_img, n)
:#金字塔進行向下取樣
for i in
range
(n):
source_img = cv2.pyrdown(source_img)
template_img = cv2.pyrdown(template_img)
""" cv2.namedwindow("source_img")
cv2.namedwindow("template_img")
cv2.imshow("source_img", source_img)
cv2.imshow("template_img", template_img)
cv2.waitkey(0)
cv2.destroywindow("source_img")
cv2.destroywindow("template_img")
"""return source_img, template_img
if __name__ ==
'__main__'
: source_img, template_img = get_img(
) n =
int(
input
("請輸入金字塔層數:"))
source_img1, template_img1 = pyramid_down(source_img, template_img, n)
h, w = template_img1.shape[:2
]"""
methods = ['cv2.tm_ccoeff', 'cv2.tm_ccoeff_normed', 'cv2.tm_ccorr',
'cv2.tm_ccorr_normed', 'cv2.tm_sqdiff', 'cv2.tm_sqdiff_normed']
"""res = cv2.matchtemplate(source_img1, template_img1,1)
min_val, max_val, min_loc, max_loc = cv2.minmaxloc(res)
#min_loc 目標位置的畫素位置
#print(min_loc)
#min_loc1 = (list(min_loc)[0] * 2 ^ n, list(min_loc)[1] * 2 ^ n)
#print(min_loc1)
bottom_right =
(list
(min_loc)[0
]+ w,
list
(min_loc)[0
]+ h)
cv2.rectangle(source_img1, min_loc, bottom_right,
255,2)
cv2.namedwindow(
"source_img1"
) cv2.imshow(
"source_img1"
, source_img1)
cv2.waitkey(0)
cv2.destroywindow(
"source_img"
)執行結果:
bezier逼近的金字塔演算法實現
其實berstein和lagrange間的差別很小,當利用lagrange進行線性插值時,每次使用的插值引數都是不同的,而berstein則剛好相反,berstein卻不要求曲線必過控制點,所以berstein的多項式是逼近方法而不是插值方法,所以實現和lagrange的差不多,只是更簡單些 說明 ...
通往成功的金字塔
在我看來,通往成功 的金字塔是由它們組成的 1.態度 2.方法 3.目標 4.策略 5.戰術 6.執行 我們把所有的時間都花在執行 上,碌碌無為,斤斤計較那些瑣碎的細節。你發現了沒有 沒有人因為執行 傻瓜 指南上的方法而成功。譯註 dummies叢書,是國外一種流行的指南叢書 戰術只是告訴你應該做什...
建立影像金字塔的意義
影像金字塔結構 指在同一的空間參照下,根據使用者需要以不同解析度進行儲存與顯示,形成解析度由粗到細 資料量由小到大的金字塔結構。影像金字塔結構用於影象編碼和漸進式影象傳輸,是一種典型的分層資料結構形式,適合於柵格資料和影響資料的多解析度組織,也是一種柵格資料或影像資料的有失真壓縮方式。分層 是指 影...