激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - OpenCV-Python 對圖像的基本操作代碼

OpenCV-Python 對圖像的基本操作代碼

2022-03-08 11:45WSKH0929 Python

這篇文章主要介紹了OpenCV-Python 對圖像的基本操作,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
# 設置兼容中文
plt.rcParams["font.family"] = ["sans-serif"]
plt.rcParams["font.sans-serif"] = ["SimHei"]
D:AnacondaAZWZlibsite-packages
umpy\_distributor_init.py:30: UserWarning: loaded more than 1 DLL from .libs:

D:AnacondaAZWZlibsite-packages
umpy.libslibopenblas.NOIJJG62EMASZI6NYURL6JBKM4EVBGM7.gfortran-win_amd64.dll

D:AnacondaAZWZlibsite-packages
umpy.libslibopenblas.WCDJNK7YVMPZQ2ME2ZZHJJRJ3JIKNDB7.gfortran-win_amd64.dll

  warnings.warn("loaded more than 1 DLL from .libs:
%s" %

cv.__version__

"4.5.1"
rain = cv.imread("img/rain.jpg")[:500,:500,:]

view = cv.imread("img/view.jpg")

print(rain.shape)

print(view.shape)

(500, 500, 3)

(500, 500, 3)
plt.figure()

plt.subplot(1,2,1)

m1 = plt.imshow(rain[:,:,::-1])

plt.title("rain.jpg")

plt.subplot(1,2,2)

m2 = plt.imshow(view[:,:,::-1])

plt.title("view.jpg")
Text(0.5, 1.0, "view.jpg")

OpenCV-Python 對圖像的基本操作代碼

1.圖像的加法?

# cv加法
add_img = cv.add(rain,view)
plt.imshow(add_img[:,:,::-1])
<matplotlib.image.AxesImage at 0x1fdc2fed160>

OpenCV-Python 對圖像的基本操作代碼

# numpy 加法
add_img2 = rain + view
plt.imshow(add_img2[:,:,::-1])
<matplotlib.image.AxesImage at 0x1fdc2d4d4c0>

OpenCV-Python 對圖像的基本操作代碼

2.圖像的混合

# 圖像的混合(按照權重)
img3 = cv.addWeighted(rain,0.2,view,0.8,0)
plt.imshow(img3[:,:,::-1])
<matplotlib.image.AxesImage at 0x1fdc2f01a00>

OpenCV-Python 對圖像的基本操作代碼

3.圖像的縮放

# 獲取絕對尺寸 行,列
row,col = rain.shape[:2]

print("row:",row,",col:",col)

row: 500 ,col: 500

# 圖像放大
res = cv.resize(rain,(2*row,2*col))
plt.figure()
plt.subplot(1,2,1)
m1 = plt.imshow(rain[:,:,::-1])
plt.title("放大前")
plt.subplot(1,2,2)
m2 = plt.imshow(res[:,:,::-1])
plt.title("放大后")

Text(0.5, 1.0, "放大后")

OpenCV-Python 對圖像的基本操作代碼

# 使用相對坐標 進行圖像縮小
res2 = cv.resize(rain,None,fx=0.5,fy=0.5)
plt.figure()
plt.subplot(1,2,1)
m1 = plt.imshow(rain[:,:,::-1])
plt.title("縮小前")
plt.subplot(1,2,2)
m2 = plt.imshow(res2[:,:,::-1])
plt.title("縮小后")

Text(0.5, 1.0, "縮小后")

?OpenCV-Python 對圖像的基本操作代碼

4.圖像的平移

# 創建平移矩陣  x方向上平移100,y方向上平移50
M = np.float32([[1,0,100],[0,1,50]])
M

array([[  1.,   0., 100.],
       [  0.,   1.,  50.]], dtype=float32)

# cv.warpAffine(要平移的圖形,平移矩陣,背景畫布大小)
res = cv.warpAffine(rain,M,rain.shape[:2])

plt.figure()
plt.subplot(1,2,1)
m1 = plt.imshow(rain[:,:,::-1])
plt.title("平移前")
plt.subplot(1,2,2)
m2 = plt.imshow(res[:,:,::-1])
plt.title("平移后")

Text(0.5, 1.0, "平移后")

OpenCV-Python 對圖像的基本操作代碼

5.圖像的旋轉

row,col = rain.shape[:2]

# 生成旋轉矩陣 getRotationMatrix2D(旋轉中心坐標,旋轉角度,縮放比例)
M = cv.getRotationMatrix2D((row/2,col/2),45,1)

# cv.warpAffine(要旋轉的圖形,旋轉矩陣,背景畫布大小)
res = cv.warpAffine(rain,M,(col,row))

plt.figure()
plt.subplot(1,2,1)
m1 = plt.imshow(rain[:,:,::-1])
plt.title("旋轉前")
plt.subplot(1,2,2)
m2 = plt.imshow(res[:,:,::-1])
plt.title("旋轉后")

Text(0.5, 1.0, "旋轉后")

OpenCV-Python 對圖像的基本操作代碼

6.圖像的仿射變換

pts1 = np.float32([[50,50],[200,50],[50,200]])
pts2 = np.float32([[100,100],[200,50],[100,250]])

M = cv.getAffineTransform(pts1,pts2)
M

array([[ 0.66666667,  0.        , 66.66666667],
       [-0.33333333,  1.        , 66.66666667]])

res = cv.warpAffine(rain,M,rain.shape[:2])

plt.figure()
plt.subplot(1,2,1)
m1 = plt.imshow(rain[:,:,::-1])
plt.title("仿射變換前")
plt.subplot(1,2,2)
m2 = plt.imshow(res[:,:,::-1])
plt.title("仿射變換后")

Text(0.5, 1.0, "仿射變換后")

OpenCV-Python 對圖像的基本操作代碼

7.圖像的透射變換

pst1 = np.float32([[56,65],[368,52],[28,387],[389,390]])
pst2 = np.float32([[100,145],[300,100],[80,290],[310,300]])

M = cv.getPerspectiveTransform(pst1,pst2)
M

array([[ 3.98327670e-01, -2.09876559e-02,  7.49460064e+01],
       [-1.92233080e-01,  4.29335771e-01,  1.21896057e+02],
       [-7.18774228e-04, -1.33393850e-05,  1.00000000e+00]])

res = cv.warpPerspective(rain,M,rain.shape[:2])

plt.figure()
plt.subplot(1,2,1)
m1 = plt.imshow(rain[:,:,::-1])
plt.title("透射變換前")
plt.subplot(1,2,2)
m2 = plt.imshow(res[:,:,::-1])
plt.title("透射變換后")

Text(0.5, 1.0, "透射變換后")

OpenCV-Python 對圖像的基本操作代碼

8.圖像金字塔

# 上采樣

img_up = cv.pyrUp(rain)
# 下采樣

img_down = cv.pyrDown(rain)

plt.figure()

plt.subplot(1,3,1)

m1 = plt.imshow(rain[:,:,::-1])

plt.title("原圖")

plt.subplot(1,3,2)

m2 = plt.imshow(img_up[:,:,::-1])

plt.title("上采樣")

plt.subplot(1,3,3)

m2 = plt.imshow(img_down[:,:,::-1])

plt.title("下采樣")
Text(0.5, 1.0, "下采樣")

?OpenCV-Python 對圖像的基本操作代碼

到此這篇關于OpenCV-Python 對圖像的基本操作的文章就介紹到這了,更多相關OpenCV-Python圖像操作內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_51545953/article/details/121522512

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: va免费视频 | 一区二区三区国产在线 | 黄色av.com | 国产午夜精品久久久久婷 | 31freehdxxxx欧美 | 99精品视频在线看 | 男女羞羞视频在线免费观看 | 亚洲视频观看 | 成年人在线视频免费 | 天天干天天透 | 国产精品99久久久久久大便 | 国产正在播放 | 国产一级毛片高清视频 | 国产日韩欧美一区 | 草草久久久 | 羞羞视频免费观看入口 | 亚洲va久久久噜噜噜久久男同 | 欧美日韩免费一区二区三区 | 免费午夜视频 | 国产999视频在线观看 | 最近日本电影hd免费观看 | 欧美一级毛片大片免费播放 | 成人激情视频网站 | 国产在线1区 | 国产一区二区免费在线观看视频 | 成人羞羞网站入口 | 久久久久亚洲a | 激情久久一区二区 | 激情宗合 | 亚洲国产精品久久久久婷婷老年 | 国产精品亚洲综合一区二区三区 | 蜜桃久久一区二区三区 | 久久99免费观看 | 国产精品一区网站 | 欧美重口另类videos人妖 | wwwxxx免费视频 | 日本a∨精品中文字幕在线 国产精品片www48888 | 日韩黄色片免费看 | 性高跟鞋xxxxhd4kvideos | 国产精品一区在线看 | 国产精品久久久久久久久久免 |