日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中opencv是什么_python-opencv的用法

發布時間:2023/12/20 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中opencv是什么_python-opencv的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

# 接收兩個參數,一個是文件名,一個值,如果值為1,接收的是彩色圖片,如果值為零,接受的是灰度圖片。會有一個返回值,表示返回的圖片內容

img = cv2.imread('mashiro.jpg',1)

# 接收兩個參數,一個是窗體名稱,另一個是要顯示的內容

cv2.imshow('mashiro',img)

# 將程序暫停,只有這樣,才能看到圖片,否則圖片會一閃而過因為程序結束了,如果time.sleep()的話,會卡住

cv2.waitKey(0)

2. 圖片寫入

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

img = cv2.imread('mashiro.jpg',1)

cv2.imwrite('mashiro1.jpg',img)

3.不同圖片質量保存

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

img = cv2.imread('mashiro.jpg',1)

cv2.imwrite('mashiro1.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,0])

cv2.imwrite('mashiro2.png',img,[cv2.IMWRITE_PNG_COMPRESSION,0])

# jpg屬于有損壓縮,是以圖片的清晰度為代價的,數字越小,壓縮比越高,圖片質量損失越嚴重

# png屬于無損壓縮,數字0-9,數字越低,壓縮比越低

4.像素操作基礎

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

img = cv2.imread('mashiro.jpg',1)

(a,b,c) = img[500,500]

print(a,b,c)

for i in range(1,100):

img[i,i] = (255,0,0)

cv2.imshow('mashiro',img)

cv2.waitKey(0)

5.圖片縮放

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

img = cv2.imread('mashiro.jpg',1)

cv2.imshow('mashiro',img)

imginfo = img.shape

height = imginfo[0]

width = imginfo[1]

mode = imginfo[2]

print(imginfo)

dstHeight = int(height*0.5)

dstWidth = int(width*0.5)

dst = cv2.resize(img,(dstWidth,dstHeight))

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

6.圖片縮放(源碼實現)

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

dstHeight = int(height/2)

dstWidth = int(width/2)

dstImage = np.zeros((dstHeight,dstWidth,3),np.uint8)

for i in range(0,dstHeight):

for j in range(0,dstWidth):

iNew = int(i*(height*1.0/dstHeight))

jNew = int(j*(width*1.0/dstWidth))

dstImage[i,j] = img[iNew,jNew]

cv2.imshow('mashiro',dstImage)

cv2.waitKey(0)

7.圖片剪切

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

img = cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

dst = img[10:600,10:400]

cv2.imshow('mashiro',dst)

cv2.waitKey(0)

8.圖片移位

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2,numpy as np

img = cv2.imread('mashiro.jpg',1)

cv2.imshow('mashiro',img)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

matshift = np.float32([[1,0,100],[0,1,200]])

dst = cv2.warpAffine(img,matshift,(height,width))

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

9.圖片移位(源碼實現)

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

cv2.imshow('mashiro',img)

dst = np.ones(imgInfo,np.uint8)

height = imgInfo[0]

width = imgInfo[1]

for i in range(0,height):

for j in range(0,width-300):

dst[i,j] = img[i,j]

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

10.圖片鏡像

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

cv2.imshow('mashiro',img)

dst = np.ones(imgInfo,np.uint8)

height = imgInfo[0]

width = imgInfo[1]

for i in range(0,height):

for j in range(0,width):

dst[i,j] = img[height-1-i,j]

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

11.圖片仿射變換

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

cv2.imshow('mashiro',img)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

matSrc = np.float32([[0,0],[0,height-1],[width-1,0]])

matDst = np.float32([[50,50],[300,height-200],[width-300,100]])

matAffine = cv2.getAffineTransform(matSrc,matDst)

dst = cv2.warpAffine(img,matAffine,(width,height))

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

12.圖片旋轉

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

cv2.imshow('mashiro',img)

height = imgInfo[0]

width = imgInfo[1]

matRotate = cv2.getRotationMatrix2D((width*0.5,height*0.5),45,0.5)

dst = cv2.warpAffine(img,matRotate,(width,height))

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

13.閑的蛋疼(批量將圖片進行上述操作)

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import glob

import numpy as np

all_jpg = glob.glob(r'C:\Users\Administrator\Desktop\satori\*.jpg')

for count,jpg in enumerate(all_jpg):

img = cv2.imread(jpg,1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

dst = cv2.resize(img,(int(width/2),int(height/2)))

cv2.imwrite(rf'C:\Users\Administrator\Desktop\satori\scale\{count}.jpg',dst,[cv2.IMWRITE_JPEG_QUALITY,100])

cv2.waitKey(0)

#######################################

for count,jpg in enumerate(all_jpg):

img = cv2.imread(jpg,1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

matshift = np.float32([[1,0,100],[0,1,50]])

dst = cv2.warpAffine(img,matshift,(width,height))

cv2.imwrite(rf'C:\Users\Administrator\Desktop\satori\translation\{count}.jpg',dst)

cv2.waitKey(0)

############################

for count,jpg in enumerate(all_jpg):

img = cv2.imread(jpg,1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

dst = np.zeros(imgInfo,np.uint8)

for i in range(0,height):

for j in range(0,width):

dst[i,j] = img[height-1-i,j]

cv2.imwrite(rf'C:\Users\Administrator\Desktop\satori\flip\{count}.jpg',dst)

#######################

for count,jpg in enumerate(all_jpg):

img = cv2.imread(jpg,1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

matsrc = np.float32([[0,0],[0,height-1],[width-1,0]])

matdst = np.float32([[50,50],[int(width/2),int(height/2)],[width-100,height-50]])

matAffine = cv2.getAffineTransform(matsrc,matdst)

dst = cv2.warpAffine(img,matAffine,(width,height))

cv2.imwrite(rf'C:\Users\Administrator\Desktop\satori\shear\{count}.jpg',dst)

########################

for count,jpg in enumerate(all_jpg):

img = cv2.imread(jpg,1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

matRotate = cv2.getRotationMatrix2D((width*0.5,height*0.5),60,0.5)

dst = cv2.warpAffine(img,matRotate,(width,height))

cv2.imwrite(rf'C:\Users\Administrator\Desktop\satori\rotation\{count}.jpg',dst)

14.灰度處理

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2,numpy as np

img = cv2.imread('mashiro.jpg',0)

cv2.imshow('mashiro',img)

img = cv2.imread('b.png',1)

dst = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

cv2.imshow('mmp',dst)

cv2.waitKey(0)

img =cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

dst = np.zeros((height,width,3),np.uint8)

for i in range(0,height):

for j in range(0,width):

b,g,r = img[i,j]

gray = (int(b)+int(g)+int(r))/3

dst[i,j] = [np.uint8(gray),np.uint8(gray),np.uint8(gray)]

cv2.imshow('mmp',dst)

cv2.waitKey(0)

img =cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

dst = np.zeros((height,width,3),np.uint8)

for i in range(0,height):

for j in range(0,width):

b,g,r = img[i,j]

b = int(b)

g = int(g)

r = int(r)

gray = r*0.9+b*0.87+r*0.4

dst[i,j] = [np.uint8(gray),np.uint8(gray),np.uint8(gray)]

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

15.顏色反轉

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import numpy as np

import cv2

img = cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

dst = np.zeros((height,width,1),np.uint8)

for i in range(0,height):

for j in range(0,width):

dst[i,j] = 255 - gray[i,j]

cv2.imshow('mashiro',gray)

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

# img = cv2.imread('mashiro.jpg',1)

# imgInfo = img.shape

# height = imgInfo[0]

# width = imgInfo[1]

# #gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

#

# dst = np.zeros((height,width,3),np.uint8)

#

# for i in range(0,height):

# for j in range(0,width):

# b,g,r = img[i,j]

# dst[i,j] = 255-b,255-g,255-r

#

# cv2.imshow('mashiro',img)

# cv2.imshow('mashiro1',dst)

# cv2.waitKey(0)

16.馬賽克

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

for m in range(200,400):

for n in range(100,200):

if m%10==0 and n%10==0:

for i in range(0,10):

for j in range(0,10):

b,g,r = img[m,n]

img[i+m,j+n] = b,g,r

cv2.imshow('mashiro',img)

cv2.waitKey(0)

17.毛玻璃

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import numpy as np

import cv2,random

img = cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

dst = np.zeros((height,width,3),np.uint8)

mm = 8

for m in range(0,height-mm):

for n in range(0,width-mm):

index = int(random.random()*8)

b,g,r = img[m+index,n+index]

dst[m,n] = b,g,r

cv2.imshow('mashiro',dst)

cv2.waitKey(0)

18.真白18歲生日快樂

19.圖片融合

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

img1 = cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

roiH = int(height/2)

roiW = int(width/2)

imgROI = img[0:roiH,0:roiW]

img1ROI = img[0:roiH,0:roiW]

dst = np.zeros((roiH,roiW,3),np.uint8)

dst = cv2.addWeighted(imgROI,0.5,img1ROI,0.5,0)

cv2.imshow('mashiro',dst)

cv2.waitKey(0)

# 貌似程序有問題

20.邊緣檢測

import cv2

import numpy as np

import random

# 所有邊緣檢測都是基于灰度處理的,因此先要轉換成灰度圖片

img = cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

cv2.imshow('mashiro',img)

# 1 灰度

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# 2 高斯濾波

imgG = cv2.GaussianBlur(gray,(3,3),0)

# 圖片經過卷積

dst = cv2.Canny(imgG,50,50)

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

21.浮雕效果

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

cv2.imshow('mashiro',img)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

dst = np.zeros((height,width,1),np.uint8)

for i in range(0,height):

for j in range(0,width-1):

grayP0 = int(gray[i,j])

grayP1 = int(gray[i,j+1])

newP = grayP0-grayP1+150

if newP>255:

newP=255

elif newP<0:

newP=0

dst[i,j] = newP

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

22.顏色映射

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

cv2.imshow('mashiro',img)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

dst = np.zeros((height,width,3),np.uint8)

for m in range(height):

for n in range(width):

b,g,r = img[m,n]

b = b*1.5

g = g*1.3

if b >255:

b=255

if g>255:

g=255

dst[m,n] = b,g,r

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

23.油畫特效

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

dst = np.zeros((height,width,3),np.uint8)

for i in range(4,height-4):

for j in range(4,width-4):

array1 = np.zeros(8,np.uint8)

for m in range(-4,4):

for n in range(-4,4):

p1=int(gray[i+m,j+n]/32)

array1[p1]=array1[p1]+1

currentMax = array1[0]

for k in range(0,8):

if currentMax

l=k

for m in range(-4,4):

for n in range(-4,4):

if gray[i+m,j+n]>(l*32) and gray[i+m,j+n]<((l+1)*32):

b,g,r = img[m,n]

dst[i,j] = b,g,r

cv2.imshow('mashiro',dst)

cv2.waitKey(0)

# 程序算的會很慢很慢

24.線段繪制

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

newImagInfo = (500,500,3)

dst = np.zeros(newImagInfo,np.uint8)

# 1.圖片信息 2.開始位置 3.結束位置 4.顏色

cv2.line(dst,(100,100),(400,400),(0,0,255))

# 5.線條的寬度

cv2.line(dst,(100,200),(400,200),(0,255,255),20)

# 6.線條類型

cv2.line(dst,(100,300),(400,300),(0,255,0),20,cv2.LINE_AA)

# 繪制三角形,說白了就是三條線段

cv2.line(dst,(200,150),(50,250),(25,100,255))

# 第二條線段的起始位置是第一條線段的終止位置

cv2.line(dst,(50,250),(400,380),(25,100,255))

# 第三條線段的起始位置是第一條線段的起始位置,終止位置是第二條線段的終止位置

cv2.line(dst,(200,150),(400,380),(25,100,255))

cv2.imshow('mashiro',dst)

cv2.waitKey(0)

25.矩形圓形任意多邊形繪制

import cv2

import numpy as np

newImgInfo = 500,500,3

dst = np.zeros(newImgInfo,np.uint8)

# 1.圖片 2.左上角坐標 3.右下角坐標 4.顏色 5.是否填充(大于零:線條寬度,小于零:是否填充)

cv2.rectangle(dst,(50,100),(200,300),(255,0,0),-1)

# 1.圖片 2.圓心 3.半徑 4.顏色

cv2.circle(dst,(250,250),(50),(255,0,255),-1,cv2.LINE_AA)

# 橢圓 1.圖片 2.橢圓圓心 3.長軸和短軸的長度 4.偏轉角度 5.圓弧起始角度 6.圓弧終止角度 7.顏色 8.是否填充

cv2.ellipse(dst,(256,256),(150,100),0,0,180,(255,255,0),-1,cv2.LINE_AA)

# 定義任意角度

points = np.array([[150,50],[140,140],[200,170],[250,250],[150,50]],np.int32) # (5,2)

points = points.reshape((-1,1,2)) # (5,1,2)

cv2.polylines(dst,[points],True,(0,255,255))

cv2.imshow('mashiro',dst)

cv2.waitKey(0)

26.文字繪制

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

font = cv2.FONT_HERSHEY_COMPLEX

# 1.圖片 2.文字的內容 3.寫入的坐標 4.字體 5.字體大小 6.顏色 7,字體的粗細 8.線條類型

cv2.putText(img,'hello, i am mashiro····',(100,300),font,1,(200,100,255),2,cv2.LINE_AA)

cv2.imshow('mashiro',img)

cv2.waitKey(0)

27.圖片繪制

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

img = cv2.imread('mashiro.jpg',1)

height = int(img.shape[0]*0.2)

width = int(img.shape[1]*0.2)

imgResize = cv2.resize(img,(width,height))

for i in range(height):

for j in range(width):

img[i+200,j+350] = imgResize[i,j]

cv2.imshow('mashiro',img)

cv2.waitKey(0)

28.彩色圖片直方圖

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

def ImageHist(img,e_type):

color = (255,255,255)

windowName = 'gray'

if e_type == 31:

color = (255,0,0)

windowName = 'b hist'

elif e_type == 32:

color = (0,255,0)

windowName = 'g hist'

elif e_type == 33:

color = (0,0,255)

windowName = 'r hist'

# 一定要用列表的形式 1.圖片 2.計算直方圖的通道 3.蒙版mask 4.直方圖的size,多少種 5直方圖中各個像素的值

hist = cv2.calcHist([img],[0],None,[256],[0.0,255.0])

minV,maxV,minV_indice,maxL_indice = cv2.minMaxLoc(hist)

histImg = np.zeros([256,256,3],np.uint8)

for h in range(256):

interNomal = int(hist[h]*256/maxV)

cv2.line(histImg,(h,256),(h,256-interNomal),color)

cv2.imshow(windowName,histImg)

return histImg

img = cv2.imread('mashiro.jpg',3)

channels = cv2.split(img) # RGB ---->R G B

for i in range(3):

ImageHist(channels[i],31+i)

cv2.waitKey(0)

29.灰度直方圖均衡化

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

cv2.imshow('mashiro',gray)

dst = cv2.equalizeHist(gray)

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

30.彩色直方圖均衡化

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',3)

cv2.imshow('mashiro',img)

b,g,r = cv2.split(img) # split之后 得到三個通道的數據

bH = cv2.equalizeHist(b)

gH = cv2.equalizeHist(g)

rH = cv2.equalizeHist(r)

result = cv2.merge((bH,gH,rH)) # 將三個通道合成在一起

cv2.imshow('mashiro1',result)

cv2.waitKey(0)

31.YUV直方圖均衡化

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

imgYUV = cv2.cvtColor(img,cv2.COLOR_BGR2YCrCb)

cv2.imshow('mashiro',img)

channelYUV = cv2.split(imgYUV)

channelYUV[0] = cv2.equalizeHist(channelYUV[0])

channels = cv2.merge(channelYUV)

result = cv2.cvtColor(channels,cv2.COLOR_YCrCb2BGR)

cv2.imshow('mashiro1',result)

cv2.waitKey(0)

32.圖片修補

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

for i in range(200,300):

img[i,200] = (255,255,255)

img[i,200+1] = (255,255,255)

img[i,200-1] = (255,255,255)

for i in range(150,250):

img[250,i] = (255,255,255)

img[250+1,i] = (255,255,255)

img[250-1,i] = (255,255,255)

cv2.imwrite('damaged_mashiro.jpg',img)

img = cv2.imread('damaged_mashiro.jpg',3)

cv2.imshow('damaged_mashiro.jpg',img)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

paint = np.zeros((height,width,1),np.uint8)

for i in range(200,300):

paint[i,200] = 255

paint[i,200+1] = 255

paint[i,200-1] = 255

for i in range(150,250):

paint[250,i] = 255,

paint[250+1,i] = 255

paint[250-1,i] = 255

cv2.imshow('paint',paint)

imgDst = cv2.inpaint(img,paint,3,cv2.INPAINT_TELEA)

cv2.imshow('mashiro',imgDst)

cv2.waitKey(0)

33.亮度增強

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

dst = np.zeros((height,width,3),np.uint8)

# 新圖片像素的亮度等于原圖片像素的亮度加上一個固定值

cv2.imshow('mashiro',img)

for i in range(height):

for j in range(width):

(b,g,r) = img[i,j]

bb = int(b)+120 # 自由變換

gg = int(g)+120

rr = int(r)+120

if bb > 255:

bb = 255

if gg > 255:

gg = 255

if rr > 255:

rr = 255

dst[i,j] = img[i,j]

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

34.磨皮美白

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

# 原理:雙邊濾波

import cv2

img = cv2.imread('mashiro.jpg',1)

cv2.imshow('mashiro',img)

dst = cv2.bilateralFilter(img,15,35,35)

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

# 由于是動漫圖片,然鵝并看不出什么效果

35.高斯濾波

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

img = cv2.imread('mashiro.jpg',1)

cv2.imshow('mashiro',img)

dst = cv2.GaussianBlur(img,(5,5),1.5)

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

# 如果原圖上有許多的小點點,那么高斯濾波可以過濾掉,同時圖片也會變得模糊

36.均值濾波

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg',1)

cv2.imshow('mashiro',img)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

dst = np.zeros((height,width,3),np.uint8)

for i in range(3,height-3):

for j in range(3,width-3):

sum_b = int(0)

sum_g = int(0)

sum_r = int(0)

for m in range(-3,3):

for n in range(-3,3):

b,g,r = img[i+m,j+n]

sum_b = sum_b + int(b)

sum_g = sum_g + int(g)

sum_r = sum_r + int(r)

b = np.uint8(sum_b/36)

g = np.uint8(sum_g/36)

r = np.uint8(sum_r/36)

dst[i,j] = b,g,r

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

# 然而并無卵用,程序還很慢

37.中值濾波

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:love_cat

import cv2

import numpy as np

img = cv2.imread('mashiro.jpg', 1)

imgInfo = img.shape

height = imgInfo[0]

width = imgInfo[1]

img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

cv2.imshow('mashiro', img)

dst = np.zeros((height, width, 3), np.uint8)

collect = np.zeros(9, np.uint8)

for i in range(1, height-1):

for j in range(1, width-1):

k = 0

for m in range(-1, 2):

for n in range(-1, 2):

gray = img[i + m, j + n]

collect[k] = gray

k = k + 1

for k in range(0, 9):

p1 = collect[k]

for t in range(k + 1, 9):

if p1 < collect[t]:

mid = collect[t]

collect[t] = p1

p1 = mid

dst[i, j] = collect[4]

cv2.imshow('mashiro1',dst)

cv2.waitKey(0)

# 效果并不理想,程序也很慢

38.視頻分解成圖片

# 視頻分解圖片

# 1 load 2 info 3 parse 4 imshow imwrite

import cv2

# 打開一個視頻獲取,一個句柄

cap = cv2.VideoCapture(r"01.mp4")

# 判斷是否打開

isOpened = cap.isOpened

print(isOpened)

# 獲取視頻的幀率

fps = cap.get(cv2.CAP_PROP_FPS)

# 獲取圖片的寬度和高度

width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))

height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

print("幀率=%s,寬度=%s,高度=%s" % (fps, width, height))

i = 0

while isOpened:

if i == 100:

break # 我們只獲取100張圖片

else:

i += 1

# 讀取每一張flag,frame

# flag表示是否讀取成功

# frame表示圖片的內容

(flag, frame) = cap.read()

fileName = "image"+str(i)+".jpg"

print(fileName)

if flag:

cv2.imwrite(fileName, frame, [cv2.IMWRITE_JPEG_QUALITY, 100]) # 表示精度最高

print("end!!!")

# 程序運行結果

'''

幀率=15.0,寬度=1280,高度=720

image1.jpg

image2.jpg

image3.jpg

image4.jpg

image5.jpg

image6.jpg

image7.jpg

image8.jpg

image9.jpg

image10.jpg

image11.jpg

image12.jpg

image13.jpg

image14.jpg

image15.jpg

image16.jpg

image17.jpg

image18.jpg

image19.jpg

image20.jpg

image21.jpg

image22.jpg

image23.jpg

image24.jpg

image25.jpg

image26.jpg

image27.jpg

image28.jpg

image29.jpg

image30.jpg

image31.jpg

image32.jpg

image33.jpg

image34.jpg

image35.jpg

image36.jpg

image37.jpg

image38.jpg

image39.jpg

image40.jpg

image41.jpg

image42.jpg

image43.jpg

image44.jpg

image45.jpg

image46.jpg

image47.jpg

image48.jpg

image49.jpg

image50.jpg

image51.jpg

image52.jpg

image53.jpg

image54.jpg

image55.jpg

image56.jpg

image57.jpg

image58.jpg

image59.jpg

image60.jpg

image61.jpg

image62.jpg

image63.jpg

image64.jpg

image65.jpg

image66.jpg

image67.jpg

image68.jpg

image69.jpg

image70.jpg

image71.jpg

image72.jpg

image73.jpg

image74.jpg

image75.jpg

image76.jpg

image77.jpg

image78.jpg

image79.jpg

image80.jpg

image81.jpg

image82.jpg

image83.jpg

image84.jpg

image85.jpg

image86.jpg

image87.jpg

image88.jpg

image89.jpg

image90.jpg

image91.jpg

image92.jpg

image93.jpg

image94.jpg

image95.jpg

image96.jpg

image97.jpg

image98.jpg

image99.jpg

image100.jpg

end!!!

'''

轉自:https://www.cnblogs.com/traditional/p/9043931.html

總結

以上是生活随笔為你收集整理的python中opencv是什么_python-opencv的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。