1. 程式人生 > >OpenCV中影象處理

OpenCV中影象處理

一.顏色空間轉換

1.cv2.cvtColor(input_img,flag)

引數1是要轉換的影象

引數2是轉換型別  例如:cv2.COLOR_BGR2HSV (RGB->HSV) cv2.COLOR_BGR2GRAY(RGB->灰度圖),常用

import cv2
import numpy as np

img = cv2.imread('timg5.jpg')
img1 = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
img2 = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
cv2.namedWindow('img',cv2.WINDOW_NORMAL)
cv2.namedWindow('Gray',cv2.WINDOW_NORMAL)
cv2.namedWindow('hsv',cv2.WINDOW_NORMAL)
cv2.imshow("img",img)
cv2.imshow('Gray',img1)
cv2.imshow('hsv',img2)
cv2.waitKey(0)
效果圖:

                  

                原圖             灰度圖                                          HSV圖

2.cv2.inRange(src, lowerb, upperb, dst=None)  二值化

src:輸入原圖,可以為單通道灰度影象,也可以為3通道彩色影象
lowerb:畫素值區間下限
upperb:畫素值區間上限
說明:單通道灰度影象,畫素值低於lowerb和高於upperb的部分變成0,lower_red~upper_red之間的值變成255;三通道彩色影象,則每個通道分別與lowerb、upperb比較,然後按照相同辦法修改畫素值

import cv2
import numpy as np

img = cv2.imread('timg5.jpg')

img2 = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
cv2.namedWindow('hsv',cv2.WINDOW_NORMAL)
cv2.namedWindow('hsv1',cv2.WINDOW_NORMAL)
cv2.namedWindow('hsv2',cv2.WINDOW_NORMAL)

lower_blue = np.array([90, 50, 50])
upper_blue = np.array([130, 255, 255])
mask = cv2.inRange(img2, lower_blue, upper_blue)#二值化
res = cv2.bitwise_and(img2, img2, mask=mask) #按位與

cv2.imshow('hsv',img2)
cv2.imshow('hsv1',mask)
cv2.imshow('hsv2',res)
cv2.waitKey(0)

                   

3.cv2.bitwise_and(src1, src2, dst=None, mask=None)

呼叫時若無mask引數則返回src1 & src2,若存在mask引數,則返回src1 & src2 & mask

src1:輸入原圖1
src2:輸入原圖2,src1與src2可以相同也可以不相同,可以是灰度影象也可以是彩色圖

dst:若存在引數時:src1 & src2 或者 src1 & src2 & mask
mask:可以是單通道8bit灰度影象,也可以是矩陣,一般為二值化後的影象

 

 

 

 

 

 



 

&nbs