為何數字皆為1的矩陣可以遮蔽chrome左邊的LOGO
import cv2
import numpy as np
import pytesseract as pt
m1=cv2.imread("C:\\Users\\johnny-lin\\Desktop\\opencv_python_TEST20200213\\chrome.png",1)
m2=cv2.erode(m1, np.ones((30,30)))
m2=cv2.cvtColor(m2,cv2.COLOR_BGR2GRAY)
t, m2=cv2.threshold(m2, 240, 255, cv2.THRESH_BINARY)
p,t=cv2.findContours(m2,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
for d in p:
x, y, w, h =cv2.boundingRect(d)
if w>h:
m2=m1[y:y+h,x:x+w].copy()
m1[:,:]=255
m1[y:y+h,x:x+w]=m2
cv2.imshow("Image 1",m1)
t=pt.image_to_string(m1,"eng")
print(t)
cv2.waitKey(0)
cv2.destroyAllWindows()
--------------------------------------------------------------------------------------------
m2=cv2.erode(m1, np.ones((30,30)))
該段程式碼主要控制遮蔽chrome左邊的LOGO
import numpy as np
print(m1, np.ones((30,30)))
列印出的結果是數字皆為1的矩陣
問題1:
為何數字皆為1的矩陣可以遮蔽chrome左邊的LOGO
這之間的 觀念,邏輯,想法 是甚麼?
問題2:
print(m1, np.ones((30,30)))
當我把30,30的參數改為小於30(例如:29)
就無法遮蔽chrome左邊的LOGO,這是為什麼?
問題3:
當我把chrome改成底部黑色(如下圖)
就無法遮蔽chrome左邊的LOGO,這是為什麼?
回答列表
-
2020/02/29 下午 08:23張維元 (WeiYuan)贊同數:0不贊同數:0留言數:1
這是遮罩的一種技巧,原理是「任何東西都 1 做 OR 運算都會變成 1;任何東西都 0 做 AND 運算都會變成 0」。