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灰度圖像,也可以是矩陣,一般為二值化后的圖像

 

 

 

 

 

 



 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM