国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenCV-Python中的圖像基礎(chǔ)操作

這篇具有很好參考價(jià)值的文章主要介紹了OpenCV-Python中的圖像基礎(chǔ)操作。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

獲取圖像的像素值并修改

首先讀入一副圖像:

import numpy as np
import cv2

# 1.獲取并修改像素值
# 讀取一副圖像, 根據(jù)像素的行和列的坐標(biāo)獲取它的像素值, 對(duì)于RGB圖像而言, 返回RGB的值, 對(duì)于灰度圖則返回灰度值

img = cv2.imread('./resource/image/1.jpg', cv2.IMREAD_COLOR)
px = img[200, 100]
print(px)	# [24 18 11]
 
blue = img[200, 100, 0]
print(blue)  # 24

# 修改101行,101列的像素值
img[101, 101] = [255,255,255]
print(img[101,101])

cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

獲取像素值及修改的更好方法:

import numpy as np
import cv2

# numpy是經(jīng)過(guò)優(yōu)化了的進(jìn)行快速矩陣運(yùn)算的包, 所以不推薦逐個(gè)獲取像素值并修改能矩陣運(yùn)算就不要用循環(huán)。
# 例如前5行的后3列, 用numpy的array.item()和array.itemset()會(huì)更好。 但是返回是標(biāo)量, 如果想獲得所有RGB
# 的值, 需要使用array.item()分割他們。

img = cv2.imread('./resource/image/1.jpg')
print(img.item(10, 10, 2))

img.itemset((10, 10, 2), 100)
print(img.item(10, 10, 2))

獲取圖像的屬性信息

img = cv2.imread(‘./resource/image/1.jpg’, cv2.IMREAD_COLOR)
img.shape: 圖像的形狀(包括行數(shù),列數(shù),通道數(shù)的元組)
img.size : 圖像的像素?cái)?shù)目
img.dtype :圖像的數(shù)據(jù)類(lèi)型

import numpy as np
import cv2

# 圖像屬性包括: 行, 列, 通道, 圖像數(shù)據(jù)類(lèi)型, 像素?cái)?shù)目等
# 如果圖像是灰度圖, 返回值僅有行數(shù)和列數(shù), 所以通過(guò)檢查返回值可以判斷是灰度圖還是彩色圖
img = cv2.imread('./resource/image/1.jpg', cv2.IMREAD_COLOR)
print(img.shape)  #  彩色圖(1080, 1920, 3) 

img = cv2.imread('./resource/image/1.jpg', cv2.IMREAD_GRAYSCALE)
print(img.shape)  # 灰度圖(1080, 1920)


# img.size 獲取圖像像素?cái)?shù)
img = cv2.imread('./resource/image/1.jpg', cv2.IMREAD_COLOR)
print(img.size) # 6220800
print(img.dtype)# uint8

img = cv2.imread('./resource/image/1.jpg', cv2.IMREAD_GRAYSCALE)
print(img.size) # 2073600
print(img.dtype)# uint8

圖像的ROI區(qū)域

ROI(regionofinterest),感興趣區(qū)域。機(jī)器視覺(jué)、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱(chēng)為感興趣區(qū)域,ROI。在Halcon、OpenCV、Matlab等機(jī)器視覺(jué)軟件上常用到各種算子(Operator)和函數(shù)來(lái)求得感興趣區(qū)域ROI,并進(jìn)行圖像的下一步處理。

import cv2
import numpy as np

img = cv2.imread('./resource/opencv/image/messi5.jpg', cv2.IMREAD_COLOR)
ball = img[280:340, 330:390]

img2 = img.copy()
img2[273:333, 100:160] = ball

cv2.imshow('img', img)
cv2.imshow('roi', ball)
cv2.imshow('img2', img2)
cv2.waitKey(0)
cv2.destroyAllWindows()

OpenCV-Python中的圖像基礎(chǔ)操作,OpenCV Python,opencv,python,人工智能

圖像通道的拆分及合并

有時(shí)需要對(duì) BGR 三個(gè)通道分別進(jìn)行操作。這時(shí)就需要把 BGR 拆
分成單個(gè)通道。有時(shí)需要把獨(dú)立通道的圖片合并成一個(gè) BGR 圖像。
注:cv2.split()是比較耗時(shí)的操作,盡量使用numpy索引操作。

import numpy as np
import cv2

img = cv2.imread('./resource/image/1.jpg', cv2.IMREAD_COLOR)
# split函數(shù),拆分圖像數(shù)據(jù)
(b,g,r) = cv2.split(img) 
img2 = cv2.merge([b,g,r]) # 合并數(shù)據(jù)
print(r.shape)
print(g.shape)
print(b.shape)

# Numpy索引拆分圖像數(shù)據(jù)
img = cv2.imread('./resource/image/1.jpg', cv2.IMREAD_COLOR)
b = img[:,:,0] # 拆分b通道
g = img[:,:,1] # 拆分g通道
r = img[:,:,2] # 拆分r通道

# 通道像素賦值
img[:,:,2]= 0 #
print(r.shape)
print(g.shape)
print(b.shape)

img3 = cv2.merge([b,g,r])

cv2.imshow('img', img)
cv2.imshow('img2', img2)
cv2.imshow('img3', img3)
cv2.waitKey(0)
cv2.destroyAllWindows()

圖像擴(kuò)邊填充

如果想在圖像周?chē)鷦?chuàng)建一個(gè)邊,就像相框一樣,你可以使用cv2.copyMakeBorder()函數(shù)。這經(jīng)常在卷積運(yùn)算或 0 填充時(shí)被用到。這個(gè)函數(shù)包括如下參數(shù):

  • src 輸入圖像

  • top, bottom, left, right 對(duì)應(yīng)邊界的像素?cái)?shù)目。

  • borderType 要添加那種類(lèi)型的邊界,類(lèi)型如下:

    1. cv2.BORDER_CONSTANT 添加有顏色的常數(shù)值邊界,還需要
      下一個(gè)參數(shù)( value)。
    2. cv2.BORDER_REFLECT 邊界元素的鏡像。比如: fedcba|abcdefgh|hgfedcb
    3. cv2.BORDER_REFLECT_101 or cv2.BORDER_DEFAULT
      跟上面一樣,但稍作改動(dòng)。例如: gfedcb|abcdefgh|gfedcba
    4. cv2.BORDER_REPLICATE 重復(fù)最后一個(gè)元素。例如: aaaaaa|
      abcdefgh|hhhhhhh
    5. cv2.BORDER_WRAP 不知道怎么說(shuō)了, 就像這樣: cdefgh|
      abcdefgh|abcdefg
  • value 邊界顏色,如果邊界的類(lèi)型是 cv2.BORDER_CONSTANT

import numpy as np
import cv2
from matplotlib import pyplot as plt

# 邊界填充
img = cv2.imread('./resource/image/opencv-logo2.png')

# BORDER_REPLICATE:復(fù)制法,復(fù)制最邊緣的像素
# BORDER_REFLECT:反射法,
# BORDER_REFLECT101:反射法
# BORDER_WRAP:外包裝
# BORDER_CONSTANT:常量法

blue = [255, 0, 0]
replicate = cv2.copyMakeBorder(img, 10, 10, 10, 10, cv2.BORDER_REPLICATE)   
reflect = cv2.copyMakeBorder(img, 10, 10, 10,10, cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(img, 10, 10, 10, 10, cv2.BORDER_REFLECT101)
wrap = cv2.copyMakeBorder(img, 10, 10, 10, 10, cv2.BORDER_WRAP)
constant = cv2.copyMakeBorder(img, 10, 10, 10, 10, cv2.BORDER_CONSTANT, value=blue)

plt.subplot(231), plt.imshow(img, 'gray'), plt.title('original'), plt.xticks([]),plt.yticks([])
plt.subplot(232), plt.imshow(replicate, 'gray'), plt.title('replicate'), plt.xticks([]),plt.yticks([])
plt.subplot(233), plt.imshow(reflect, 'gray'), plt.title('reflect'), plt.xticks([]),plt.yticks([])
plt.subplot(234), plt.imshow(reflect101, 'gray'), plt.title('reflect101'), plt.xticks([]),plt.yticks([])
plt.subplot(235), plt.imshow(wrap, 'gray'), plt.title('warp'), plt.xticks([]),plt.yticks([])
plt.subplot(236), plt.imshow(constant, 'gray'), plt.title('constant'), plt.xticks([]),plt.yticks([])
plt.show()

OpenCV-Python中的圖像基礎(chǔ)操作,OpenCV Python,opencv,python,人工智能

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('./resource/opencv/image/logo/opencv-logo-white.png', cv2.IMREAD_COLOR)

blue = [255, 0, 0]
replicate = cv2.copyMakeBorder(img, 20, 20, 20, 20, cv2.BORDER_REPLICATE)
reflect = cv2.copyMakeBorder(img, 20, 20, 20, 20, cv2.BORDER_REFLECT)   
reflect101 = cv2.copyMakeBorder(img, 20, 20, 20, 20, cv2.BORDER_REFLECT_101)  
wrap = cv2.copyMakeBorder(img, 20, 20, 20, 20, cv2.BORDER_WRAP)
constant = cv2.copyMakeBorder(img, 20, 20, 20, 20, cv2.BORDER_CONSTANT, value=blue)

plt.subplot(231), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGBA)), plt.title('origin'), plt.xticks([]), plt.yticks([])
plt.subplot(232), plt.imshow(cv2.cvtColor(replicate, cv2.COLOR_BGR2RGBA)), plt.title('replicate'), plt.xticks([]), plt.yticks([])
plt.subplot(233), plt.imshow(cv2.cvtColor(reflect, cv2.COLOR_BGR2RGBA)), plt.title('reflect'), plt.xticks([]), plt.yticks([])
plt.subplot(234), plt.imshow(cv2.cvtColor(reflect101, cv2.COLOR_BGR2RGBA)), plt.title('reflect101'), plt.xticks([]), plt.yticks([])
plt.subplot(235), plt.imshow(cv2.cvtColor(wrap, cv2.COLOR_BGR2RGBA)), plt.title('wrap'), plt.xticks([]), plt.yticks([])
plt.subplot(236), plt.imshow(cv2.cvtColor(constant, cv2.COLOR_BGR2RGBA)), plt.title('constant'), plt.xticks([]), plt.yticks([])
plt.show()

OpenCV-Python中的圖像基礎(chǔ)操作,OpenCV Python,opencv,python,人工智能

圖像的算術(shù)運(yùn)算

圖像上的算術(shù)運(yùn)算有:加法,減法,乘法,除法,位運(yùn)算等
涉及的函數(shù)有:cv2.add(), cv2().addWeighted()等

  • cv2.add():加
  • cv2.subtract():減
  • cv2.multiply():乘
  • cv2.divide():除

圖像的加法

可以使用函數(shù) cv2.add() 將兩幅圖像進(jìn)行加法運(yùn)算,當(dāng)然也可以直接使
用 numpy, res=img1+img2。兩幅圖像的大小,類(lèi)型必須一致,或者第二個(gè)
圖像可以是一個(gè)簡(jiǎn)單的標(biāo)量值。

注意: OpenCV 中的加法與 Numpy 的加法是有所不同的。 OpenCV 的加法
是一種飽和操作,而 Numpy 的加法是一種模操作。如下例子所示:

x = np.uint8([250])
y = np.uint8([10])
print(cv2.add(x, y))  #  250 + 10 = 260 > 255, uint8 最大值255
# 輸出結(jié)果[[255]]

print(x + y) # 250_10=260%255=4
# 輸出結(jié)果[[4]] 

圖像的混合

其實(shí)也是加法運(yùn)算,但不同的是兩幅圖像的權(quán)重不同,給人一種混合或透明的感覺(jué)。圖像混合計(jì)算公式如下:
g ( x ) = ( 1 ? α ) f 0 ( x ) + α f 1 ( x ) g(x) = (1-\alpha)f_0(x) + \alpha f_1(x) g(x)=(1?α)f0?(x)+αf1?(x)
通過(guò)修改 α \alpha α的值(0-1),可以實(shí)現(xiàn)不同權(quán)重的混合。
d s t = α ? i m g 1 + β ? i m g 2 + γ dst = \alpha*img1 + \beta*img2+\gamma dst=α?img1+β?img2+γ
這里 γ \gamma γ的值為0。

dst2 = cv2.addWeighted(img1, 0.3, img2, 0.7, 0)

import numpy as np
import cv2
from matplotlib import pyplot as plt

img1 = cv2.imread('./resource/image/1.jpg', cv2.IMREAD_COLOR)
img2 = cv2.imread('./resource/image/2.jpg', cv2.IMREAD_COLOR)

dst1 = img1 + img2
dst2 = cv2.addWeighted(img1, 0.3, img2, 0.7, 0)

plt.subplot(231), plt.imshow(img1), plt.title('img1')
plt.subplot(232), plt.imshow(img2), plt.title('img2')
plt.subplot(233), plt.imshow(dst1), plt.title('img1+img2')
plt.subplot(234), plt.imshow(dst2), plt.title('addWeighted(img1+img2)')
plt.show()

import cv2
import numpy as np
from matplotlib import pyplot as plt

img1 = cv2.imread('./resource/opencv/image/MachineLearnings.jpg', cv2.IMREAD_COLOR)
img2 = cv2.imread('./resource/opencv/image/100.png', cv2.IMREAD_COLOR)

print(img1.shape)
print(img2.shape)

img3 = img1 + img2
img4 = cv2.addWeighted(img1, 0.7, img2, 0.3, 0)

imgs = np.hstack((img1, img2, img3, img4))
cv2.imshow('imgs', imgs)
cv2.waitKey(0)
cv2.destroyAllWindows()

OpenCV-Python中的圖像基礎(chǔ)操作,OpenCV Python,opencv,python,人工智能

圖像的位運(yùn)算

圖像的按位操作有: AND, OR, NOT, XOR 等。當(dāng)我們提取圖像的一部分,選擇非矩形 ROI 時(shí)這些操作會(huì)很有用。下面的例子就是教給我們?nèi)绾胃淖円环鶊D的特定區(qū)域。

  • cv2.bitwise_and() 與
  • cv2.bitwise_or() 或
  • cv2.bitwise_not() 非
  • cv2.bitwise_xor() 異或
import numpy as np
import cv2

img1 = cv2.imread('./resource/image/1.jpg')
img2 = cv2.imread('./resource/image/opencv-logo.png')

# 放置logo在左上角
rows, cols, channels = img2.shape
roi = img1[0:rows,0:cols]

img2gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(img2gray, 175, 255, cv2.THRESH_BINARY) # 二值化處理
mask_inv = cv2.bitwise_not(mask)

img1_bg = cv2.bitwise_and(roi, roi, mask=mask)
img2_fg = cv2.bitwise_and(img2, img2, mask=mask_inv)

dst = cv2.add(img1_bg, img2_fg)
img1[0:rows, 0:cols] = dst

cv2.imshow('logo', img2)    
cv2.imshow('gray', img2gray)
cv2.imshow('mask', mask)       
cv2.imshow('mask_inv', mask_inv)
cv2.imshow('bg', img1_bg)
cv2.imshow('fg', img2_fg)
cv2.imshow('res', img1)
cv2.waitKey(0)
cv2.destroyAllWindows()

OpenCV-Python中的圖像基礎(chǔ)操作,OpenCV Python,opencv,python,人工智能
OpenCV-Python中的圖像基礎(chǔ)操作,OpenCV Python,opencv,python,人工智能
OpenCV-Python中的圖像基礎(chǔ)操作,OpenCV Python,opencv,python,人工智能文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-680062.html

到了這里,關(guān)于OpenCV-Python中的圖像基礎(chǔ)操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • OpenCV-Python中的圖像處理-傅里葉變換

    OpenCV-Python中的圖像處理-傅里葉變換

    傅里葉變換經(jīng)常被用來(lái)分析不同濾波器的頻率特性。我們可以使用 2D 離散傅里葉變換 (DFT) 分析圖像的頻域特性。實(shí)現(xiàn) DFT 的一個(gè)快速算法被稱(chēng)為快速傅里葉變換( FFT)。 對(duì)于一個(gè)正弦信號(hào):x (t) = A sin (2πft), 它的頻率為 f,如果把這個(gè)信號(hào)轉(zhuǎn)到它的頻域表示,我們會(huì)在頻率

    2024年02月12日
    瀏覽(24)
  • OpenCV-Python中的圖像處理-GrabCut算法交互式前景提取

    OpenCV-Python中的圖像處理-GrabCut算法交互式前景提取

    cv2.grabCut(img: Mat, mask: typing.Optional[Mat], rect, bgdModel, fgdModel, iterCount, mode=…) img:輸入圖像 mask:掩模圖像,用來(lái)確定那些區(qū)域是背景,前景,可能是前景/背景等。 可以設(shè)置為: cv2.GC_BGD,cv2.GC_FGD,cv2.GC_PR_BGD,cv2.GC_PR_FGD,或者直接輸入 0,1,2,3 也行。 rect :包含前景的矩形,格式為

    2024年02月12日
    瀏覽(21)
  • 圖像合成——OpenCV-Python圖像融合詳解

    圖像合成——OpenCV-Python圖像融合詳解 在圖像處理中,圖像的合成是一項(xiàng)重要的任務(wù)。OpenCV提供了許多方法來(lái)實(shí)現(xiàn)圖像合成。其中,cv::addWeighted()函數(shù)是一種常用的圖像融合方法。它可以將兩張圖片以一定的權(quán)重相加,產(chǎn)生一張新的融合圖像。 下面我們將詳細(xì)講解OpenCV中的c

    2024年02月14日
    瀏覽(21)
  • OpenCv-Python圖像特征識(shí)別

    OpenCv-Python圖像特征識(shí)別

    本練習(xí)學(xué)習(xí)了OpenCv-Python關(guān)于圖像特征識(shí)別的一些算法,算法理解起來(lái)較為困難,但函數(shù)用起來(lái)上手比較快,主要要明白函數(shù)的輸入輸出的含義。 雖然算法理解不容易,但程序還算有趣,輸入是一個(gè)完整的圖片和一組圖片碎片,如下圖,然后經(jīng)過(guò)算法計(jì)算,把碎片匹配到正確

    2024年02月07日
    瀏覽(83)
  • OpenCV-Python(49):圖像去噪

    OpenCV-Python(49):圖像去噪

    學(xué)習(xí)使用非局部平均值去噪算法去除圖像中的噪音 學(xué)習(xí)函數(shù)cv2.fastNlMeansDenoising()、cv2.fastNlMeansDenoisingColored等 ????????在前面的章節(jié)中我們已經(jīng)學(xué)習(xí)了很多圖像平滑技術(shù),比如高斯平滑、中值平滑等。當(dāng)噪聲比較小時(shí),這些技術(shù)的效果都是很好的。在這些技術(shù)中我們選取像

    2024年01月21日
    瀏覽(48)
  • opencv-python 將圖像迷宮轉(zhuǎn)為迷宮數(shù)組

    opencv-python 將圖像迷宮轉(zhuǎn)為迷宮數(shù)組

    起因是我想做個(gè)自動(dòng)走迷宮的外掛(其實(shí)是想做點(diǎn)實(shí)踐),所以我需要在游戲中捕捉畫(huà)面并自動(dòng)尋路,然后再控制自動(dòng)移動(dòng),此為第一部分:捕捉畫(huà)面。 1.取得圖像迷宮 2.處理圖像 3.圖像分割 4.生成數(shù)組 首先我們得捕捉屏幕畫(huà)面,即獲得迷宮圖像,這里我是在steam上面找了一

    2024年02月07日
    瀏覽(39)
  • Python-OpenCV 圖像的基礎(chǔ)操作

    Python-OpenCV 圖像的基礎(chǔ)操作

    首先讀入一副圖像: 獲取像素值及修改的更好方法: img = cv2.imread(‘./resource/image/1.jpg’, cv2.IMREAD_COLOR) img.shape: 圖像的形狀(包括行數(shù),列數(shù),通道數(shù)的元組) img.size : 圖像的像素?cái)?shù)目 img.dtype :圖像的數(shù)據(jù)類(lèi)型 ROI(regionofinterest),感興趣區(qū)域。機(jī)器視覺(jué)、圖像處理中,從被

    2024年02月14日
    瀏覽(19)
  • OpenCV-Python學(xué)習(xí)(21)—— OpenCV 圖像幾何變換之圖像翻轉(zhuǎn)(cv.flip、np.flip)

    OpenCV-Python學(xué)習(xí)(21)—— OpenCV 圖像幾何變換之圖像翻轉(zhuǎn)(cv.flip、np.flip)

    1. 學(xué)習(xí)目標(biāo) 學(xué)習(xí) OpenCV 圖像的翻轉(zhuǎn)函數(shù) cv.flip; 學(xué)習(xí) NumPy 矩陣的反轉(zhuǎn)函數(shù) np.flip; 自己實(shí)現(xiàn)矩陣反轉(zhuǎn)的函數(shù)。 2. OpenCV 翻轉(zhuǎn) 翻轉(zhuǎn)也稱(chēng)鏡像,是指將圖像沿軸線(xiàn)進(jìn)行軸對(duì)稱(chēng)變換。水平鏡像是將圖像沿垂直中軸線(xiàn)進(jìn)行左右翻轉(zhuǎn),垂直鏡像是將圖像沿水平中軸線(xiàn)進(jìn)行上下翻轉(zhuǎn),水平

    2024年02月06日
    瀏覽(84)
  • OpenCV-Python學(xué)習(xí)(10)—— OpenCV 圖像二值化處理(cv.threshold)

    OpenCV-Python學(xué)習(xí)(10)—— OpenCV 圖像二值化處理(cv.threshold)

    1. 學(xué)習(xí)目標(biāo) 理解圖像的分類(lèi),不同類(lèi)型的圖像的區(qū)別; 對(duì)圖像進(jìn)行二值化處理,對(duì)【 cv.threshold 】函數(shù)的理解。 2. 圖像分類(lèi) 2.1 不同類(lèi)型圖像說(shuō)明 按照顏色對(duì)圖像進(jìn)行分類(lèi),可以分為二值圖像、灰度圖像和彩色圖像。 二值圖像: 只有黑色和白色兩種顏色的圖像。 每個(gè)像素

    2024年02月03日
    瀏覽(103)
  • opencv-python[cv2]讀取中文路徑圖像

    opencv-python[cv2]讀取中文路徑圖像

    隨著AI人工智能的不斷發(fā)展,圖像處理這門(mén)技術(shù)也越來(lái)越重要,很多學(xué)校本科都開(kāi)啟了圖像處理這門(mén)課程,學(xué)習(xí)圖像處理開(kāi)發(fā),自然就繞不開(kāi)opencv-python[ cv2 ]這個(gè)由intel主導(dǎo)的開(kāi)源庫(kù)。 cv2 是指OpenCV的Python接口庫(kù)。 OpenCV (Open Source Computer Vision Library)是一個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)庫(kù)

    2024年02月06日
    瀏覽(41)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包