Python OpenCV Image Fundamentals and Manipulation
圖片形態 numpy.ndarray:
由此可知圖片是numpy.ndarray, img.shape的channels就是顏色有三個space:
Example
import cv2
img = cv2.imread("assets/img01.jpg", 1)
#1
print(type(img))
#2
print(img.shape)
#3
print(img[3000][2000])
輸出結果
#1
<class ‘numpy.ndarray’>
#2
(6000, 4000, 3) ##(rows,columns,channels) ##(height,width,channels)
#3
[103 90 104] ##印出那個圖片第3000px*2000px點的BGR參數
嘗試把圖片的某個區塊變成RGB雜訊:
如果圖片太大就用resize
Example
import cv2
import random
img = cv2.imread("assets/img01.jpg", 1)
for i in range(100):
for j in range(img.shape[1]):
img[i][j] = [random.randint(0, 255),random.randint(0, 255),random.randint(0, 255)]
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
輸出結果:
嘗試把圖片的某個區塊copy 然後paste到某個位置:
這邊要注意的地方是: 8和9行的數字相差要同等
Example
import cv2
import random
img = cv2.imread("assets/img02.jpeg", 1)
#可以用原圖的 pixel*fx 和 fy 就可得出resize後的圖片(長*寬)
# img = cv2.resize(img, (0,0), fx=0.2, fy=0.2) #自己計算大小是否相對於 要處理的tag框
tag = img[100:550,250:600]
img[100:550, 550:900] = tag
#copy後處理resize,與28行不同
img = cv2.resize(img, (0,0), fx=0.5, fy=0.5)
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
輸出結果:
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 kimfei2014@gmail.com