【图像处理】——正装照换底色Python
生活随笔
收集整理的這篇文章主要介紹了
【图像处理】——正装照换底色Python
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
import cv2
import numpy as np
# 讀取照片
img=cv2.imread("personalPic.jpg")# 圖像縮放
img = cv2.resize(img,None,fx=0.3,fy=0.3)
rows,cols,channels = img.shape
print(rows,cols,channels)# img_medianBlur=cv2.medianBlur(img,3) # 中值濾波,必須是大于1的奇數(shù),如3、5、7…
# cv2.namedWindow('median', cv2.WINDOW_NORMAL) #此配置名稱為median窗口可手動(dòng)改變大小
# cv2.namedWindow('median', cv2.WINDOW_AUTOSIZE)
# cv2.imshow("median",img_medianBlur)# 顯示原始圖像
cv2.imshow('img',img)# 圖片轉(zhuǎn)換為灰度圖
hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)# 顯示灰度圖像
cv2.imshow('hsv',hsv)# 圖片的二值化處理,可能會(huì)出現(xiàn)噪聲(白點(diǎn)),有的圖片顯示的很明顯,這就需要我們進(jìn)行腐蝕或膨脹。
lower_blue = np.array([70,70,70])
upper_blue = np.array([110,255,255])
mask = cv2.inRange(hsv, lower_blue, upper_blue) #藍(lán)色范圍內(nèi)變白,其余之外全部變黑# 顯示二值化處理圖像
cv2.imshow('mask',mask)#腐蝕膨脹,主要用于去處噪聲
erode=cv2.erode(mask,None,iterations=1) #進(jìn)行腐蝕操作#顯示腐蝕后的圖片
cv2.imshow('erode',erode)dilate=cv2.dilate(erode,None,iterations=1) #進(jìn)行膨脹操作#顯示膨脹后的圖片
cv2.imshow('dilate',dilate)#遍歷每個(gè)像素點(diǎn),進(jìn)行顏色的替換
for i in range(rows):for j in range(cols):if erode[i,j]==255: # 像素點(diǎn)為255表示的是白色,此處將白色處的像素點(diǎn)替換為紅色(將if dilate[i,j]==255中的dilate換成erode對(duì)比試試)img[i,j]=(0,0,255) # 此行將藍(lán)底替換成紅底,即(0,0,255)代表紅色,由于歷史原因,為BGR(藍(lán)綠紅)通道,不是RGB(紅綠藍(lán))通道,所以255放第三個(gè)位置
#img = cv2.flip(img, 1) #圖像反轉(zhuǎn) 1水平翻轉(zhuǎn) 0垂直翻轉(zhuǎn) -1水平垂直翻轉(zhuǎn)
cv2.imshow('red',img)# 窗口等待的命令,0表示無(wú)限等待
k = cv2.waitKey(0) #監(jiān)聽(tīng)鍵盤(pán)事件
if k == ord('s'): #英文狀態(tài)下鍵盤(pán)按s鍵,會(huì)將圖片保存至桌面font = cv2.FONT_HERSHEY_DUPLEX#參數(shù)依次為:涂鴉的圖片、涂鴉的文字、位置、字體、字體大小、字體顏色、字體畫(huà)筆粗細(xì)# img = cv2.putText(img,"girl",(10,30),font,0.5,(0,0,0),2)cv2.imwrite("Blue2Red2.jpg",img, [int(cv2.IMWRITE_JPEG_QUALITY),100])cv2.destroyWindow('red') #保存完后銷(xiāo)毀名稱為red的窗口
else:cv2.destroyAllWindows()
?
總結(jié)
以上是生活随笔為你收集整理的【图像处理】——正装照换底色Python的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 调试nodejs项目接口,使用Posma
- 下一篇: 并查集【算法笔记/晴神笔记】