1.匯入CV模塊
import cv2 as cv
2.讀取單通道灰度圖及處理
#讀取圖片
color_img = cv.imread("C:/Users/Administrator/Desktop/New_Study/IMAGE/flower.jpg")
print(color_img.shape)
cv.namedWindow('color_img',cv.WINDOW_NORMAL)
cv.imshow("Flower",color_img)

#讀取單通道灰度圖
gray_img = cv.imread("C:/Users/Administrator/Desktop/New_Study/IMAGE/flower.jpg",cv.IMREAD_GRAYSCALE)
print(gray_img.shape)
cv.namedWindow('gray_img',cv.WINDOW_NORMAL)
cv.imshow("Flower_Gray",gray_img)

#保存單通道灰度圖,打開任然是三通道
#cv.IMWRITE_JPEG_QUALITY指定JPG的質量,范圍0-100,默認95,越高畫質越好,檔案越大
#cv.IMWRITE_PNG_CONPRESSION指定PNG質量,范圍0-9,默認3,越高檔案越小,畫質越差
cv.imwrite("C:/Users/Administrator/Desktop/New_Study/IMAGE/flower_gray.jpg",
gray_img,(cv.IMWRITE_JPEG_QUALITY,80))
reload_gray = cv.imread("C:/Users/Administrator/Desktop/New_Study/IMAGE/flower_gray.jpg")
print(reload_gray.shape)
cv.namedWindow('reload_gray',cv.WINDOW_NORMAL)
cv.imshow("reload_gray",reload_gray)
cv.waitKey()
3.放縮、裁剪等處理
#讀取圖片
flower = cv.imread("C:/Users/Administrator/Desktop/New_Study/IMAGE/flower.jpg")
cv.namedWindow('flower',cv.WINDOW_NORMAL)
cv.imshow('flower',flower)
#影像縮放200x200
flower_200x200 = cv.resize(flower,(200,200))
cv.namedWindow('flower_200x200',cv.WINDOW_NORMAL)
cv.imshow('flower_200x200',flower_200x200)
#不直接指定縮放大小,通過fx,fy 指定縮放比例,0.5就是原長寬的一半,插值法默認是cv.INTER_LINEAR,這里采用最近鄰
flower_100x100 = cv.resize(flower_200x200,(0,0),fx=0.5,fy=0.5,interpolation=cv.INTER_NEAREST)
cv.namedWindow('flower_100x100',cv.WINDOW_NORMAL)
cv.imshow('flower_100x100',flower_100x100)
#在上圖基礎上,上下左右各貼50,50,0,0的像素邊框,生成300x300的影像
flower_border =cv.copyMakeBorder(flower,50,50,0,0,cv.BORDER_CONSTANT,value=[0,255,0])
cv.namedWindow('flower_border',cv.WINDOW_NORMAL)
cv.imshow('flower_border',flower_border)
#對影像區域進行裁剪
"""
影像坐標系:[X,Y]
"""
patch_flower = flower[200:400,0:-200]
cv.namedWindow('patch_flower',cv.WINDOW_NORMAL)
cv.imshow('patch_flower',patch_flower)
#防止影像展示視窗卡死
cv.waitKey()
#保存處理過的影像
cv.imwrite('C:/Users/Administrator/Desktop/New_Study/IMAGE/Result_img/flower_200x200.jpg',flower_200x200)
cv.imwrite('C:/Users/Administrator/Desktop/New_Study/IMAGE/Result_img/flower_100x100.jpg',flower_100x100)
cv.imwrite('C:/Users/Administrator/Desktop/New_Study/IMAGE/Result_img/flower_border.jpg',flower_border)
cv.imwrite('C:/Users/Administrator/Desktop/New_Study/IMAGE/Result_img/patch_flower.jpg',patch_flower)

4.飽和度處理
#減小飽和度會讓圖片損失鮮艷,變得更灰
flower = cv.imread("C:/Users/Administrator/Desktop/New_Study/IMAGE/flower.jpg")
cv.namedWindow('flower',cv.WINDOW_NORMAL)
cv.imshow('flower',flower)
colorless_hsv = flower.copy()
colorless_hsv[:,:,1] = 0.5*colorless_hsv[:,:,1]
colorless_img = cv.cvtColor(colorless_hsv,cv.COLOR_HSV2BGR)
cv.namedWindow('colorless_img',cv.WINDOW_NORMAL)
cv.imshow('colorless_img',colorless_img)
cv.waitKey()
5.亮度處理
#讀取圖片
flower = cv.imread("C:/Users/Administrator/Desktop/New_Study/IMAGE/flower.jpg")
cv.namedWindow('flower',cv.WINDOW_NORMAL)
cv.imshow('flower',flower)
#較小飽和度,影像損失鮮艷,變得灰暗
colorless_hsv = flower.copy()
colorless_hsv[:,:,1] = 0.5*colorless_hsv[:,:,1]
colorless_img = cv.cvtColor(colorless_hsv,cv.COLOR_HSV2BGR)
cv.namedWindow('colorless_img',cv.WINDOW_NORMAL)
cv.imshow('colorless_img',colorless_img)
#減小明度為原來的一半
darker_hsv = flower.copy()
darker_hsv[:,:,2] = 0.5*darker_hsv[:,:,2]
darker_img = cv.cvtColor(darker_hsv,cv.COLOR_HSV2BGR)
cv.namedWindow('darker_img',cv.WINDOW_NORMAL)
cv.imshow('darker_img',darker_img)
cv.waitKey()
cv.imwrite('C:/Users/Administrator/Desktop/New_Study/IMAGE/Result_img/flower.jpg',flower)
特別注明:本文屬于Python OpenCV學習筆記,不以盈利為目的,純手工碼字不容易,若整理的筆記中,對您有所助益,麻煩點個贊或者收藏,萬分感謝!如有構成侵權的地方,請聯系作者洗掉,謝謝合作!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/279264.html
標籤:python
