From e2bb76eb68ac8b6570aefc713aeb114318634d43 Mon Sep 17 00:00:00 2001 From: songofhawk Date: Fri, 5 Nov 2021 12:34:12 +0800 Subject: [PATCH] =?UTF-8?q?support=20find=20template=20in=20grayscale=20an?= =?UTF-8?q?d=20transparent=20image=20=E6=94=AF=E6=8C=81=E5=9C=A8=E7=81=B0?= =?UTF-8?q?=E5=BA=A6=E5=9B=BE=E5=92=8C=E5=B8=A6=E9=80=8F=E6=98=8E=E9=80=9A?= =?UTF-8?q?=E9=81=93=E7=9A=84=E5=9B=BE=E7=89=87=E4=B8=AD=E6=9F=A5=E6=89=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit btw, change print style from python2 to python3 in example.py 另外,把example.py里的print改成python3风格的了 --- aircv/__init__.py | 24 ++++++++++++-- tests/example.py | 61 ++++++++++++++++++++++++++++++------ tests/testdata/2s_gray.png | Bin 0 -> 11849 bytes tests/testdata/2s_trans.png | Bin 0 -> 36024 bytes 4 files changed, 73 insertions(+), 12 deletions(-) create mode 100644 tests/testdata/2s_gray.png create mode 100644 tests/testdata/2s_trans.png diff --git a/aircv/__init__.py b/aircv/__init__.py index e8e52ea..a88e065 100644 --- a/aircv/__init__.py +++ b/aircv/__init__.py @@ -125,8 +125,28 @@ def find_all_template(im_source, im_search, threshold=0.5, maxcnt=0, rgb=False, resbgr[i] = cv2.matchTemplate(i_bgr[i], s_bgr[i], method) res = resbgr[0]*weight[0] + resbgr[1]*weight[1] + resbgr[2]*weight[2] else: - s_gray = cv2.cvtColor(im_search, cv2.COLOR_BGR2GRAY) - i_gray = cv2.cvtColor(im_source, cv2.COLOR_BGR2GRAY) + channel = 1 if len(im_search.shape) == 2 else im_search.shape[2] + if channel == 1: + # if the image is gray, then keep it + s_gray = im_search + elif channel == 3: + # if it's colorful, then convert it to gray + s_gray = cv2.cvtColor(im_search, cv2.COLOR_BGR2GRAY) + elif channel == 4: + # if it's colorful with transparent channel, then convert it to gray + s_gray = cv2.cvtColor(im_search, cv2.COLOR_BGRA2GRAY) + + channel = 1 if len(im_source.shape) == 2 else im_source.shape[2] + if channel == 1: + # if the image is gray, then keep it + i_gray = im_source + elif channel == 3: + # if it's colorful, then convert it to gray + i_gray = cv2.cvtColor(im_source, cv2.COLOR_BGR2GRAY) + elif channel == 4: + # if it's colorful with transparent channel, then convert it to gray + i_gray = cv2.cvtColor(im_source, cv2.COLOR_BGRA2GRAY) + # 边界提取(来实现背景去除的功能) if bgremove: s_gray = cv2.Canny(s_gray, 100, 200) diff --git a/tests/example.py b/tests/example.py index efaf32a..78f1c05 100644 --- a/tests/example.py +++ b/tests/example.py @@ -7,29 +7,70 @@ """ sift """ +import cv2 +import numpy as np import aircv as ac def sift_test(): t1 = ac.imread("testdata/1s.png") t2 = ac.imread("testdata/2s.png") - print ac.sift_count(t1), ac.sift_count(t2) + print(ac.sift_count(t1), ac.sift_count(t2)) result = ac.find_sift(t1, t2, min_match_count=ac.sift_count(t1)*0.4) # after many tests, 0.4 may be best if result: - print 'Same' + print('Same') else: - print 'Not same' + print('Not same') -def tmpl_test(): - t1 = ac.imread("testdata/2s.png") - t2 = ac.imread("testdata/2t.png") +def tmpl_test(imgsrc, imgtgt): + t1 = ac.imread(imgsrc) + t2 = ac.imread(imgtgt) import time start = time.time() - print ac.find_all_template(t1, t2) - print 'Time used:', time.time() - start + print(ac.find_all_template(t1, t2)) + print('Time used:', time.time() - start) + + +def add_alpha(imgsrc, imgtgt): + # a tool to generate 4 channel image + img = cv2.imread(imgsrc) + + b_channel, g_channel, r_channel = cv2.split(img) + + alpha_channel = np.ones(b_channel.shape, dtype=b_channel.dtype) * 255 + # 最小值为0 + alpha_channel[:, :int(b_channel.shape[1] / 2)] = 100 + + img_BGRA = cv2.merge((b_channel, g_channel, r_channel, alpha_channel)) + cv2.imwrite(imgtgt, img_BGRA) + + +def to_grayscale(imgsrc, imgtgt): + # a tool to generate grayscale image + img = cv2.imread(imgsrc) + + channel = img.shape[2] + if channel == 1: + img_gray = imgsrc + elif channel == 3: + img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) + elif channel == 4: + img_gray = cv2.cvtColor(img, cv2.COLOR_BGRA2GRAY) + + cv2.imwrite(imgtgt, img_gray) + if __name__ == '__main__': - sift_test() - tmpl_test() + # sift_test() + + # add_alpha('testdata/2s.png','testdata/2s_trans.png') + # to_grayscale('testdata/2s.png','testdata/2s_gray.png') + + tmpl_test("testdata/2s.png", "testdata/2t.png") + # test find template in 3 channel images + tmpl_test("testdata/2s_trans.png", "testdata/2t.png") + # test find template in 4 channel images + tmpl_test("testdata/2s_gray.png", "testdata/2t.png") + # test find template in 1 channel images diff --git a/tests/testdata/2s_gray.png b/tests/testdata/2s_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..1844003c783c05ad8a76f46b0921ec3eb7854151 GIT binary patch literal 11849 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

e=y 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 abL59qBz;kCWb+a5PfJ}FS)_VB=zjn!va=Wf literal 0 HcmV?d00001