欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

openCV入門(mén)學(xué)習(xí)基礎(chǔ)教程第二篇

 更新時(shí)間:2022年11月21日 09:44:59   作者:老師我作業(yè)忘帶了  
人臉識(shí)別,物體檢測(cè),OpenCV是基石,下面這篇文章主要給大家介紹了關(guān)于openCV入門(mén)學(xué)習(xí)基礎(chǔ)教程的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

1. HSV

由我們上一章所學(xué),導(dǎo)入圖片將其轉(zhuǎn)化為灰度圖并定義顯示圖片函數(shù)cv_show()。 

import cv2 #opencv讀取的格式是BGR
import numpy as np
import matplotlib.pyplot as plt#Matplotlib是RGB
%matplotlib inline 
 
def cv_show(name,img):
    cv2.imshow(name,img)
    cv2.waitKey(0)
    cv2.destroyAllWindows() 
 
img = cv2.imread('./data/gd01.jpg')
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# img_gray.shape 為 (300,400)
cv_show('win1',img_gray)

HSV:

  • H - 色調(diào)(主波長(zhǎng))。
  • S - 飽和度(純度/顏色的陰影)。
  • V值(強(qiáng)度)
hsv = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) # 轉(zhuǎn)換成RGB
cv_show('win',hsv)

2. 圖像閾值

上章所學(xué)我們得知,矩陣中unit8值(0-255)越大表示越亮,我們可以設(shè)定一個(gè)閾值thresh,比它大的做什么什么操作,比它小的做什么什么操作。 

ret, dst = cv2.threshold(src, thresh, maxval, type) src: 輸入圖,只能輸入單通道圖像,通常來(lái)說(shuō)為灰度圖

  • dst: 輸出圖
  • thresh: 閾值(0-255我們一般取127。)
  • maxval: 當(dāng)像素值超過(guò)了閾值(或者小于閾值,根據(jù)type來(lái)決定),所賦予的值。
  • type:二值化操作的類型,包含以下5種類型:
    • cv2.THRESH_BINARY 超過(guò)閾值部分取maxval(最大值),否則取0。
    • cv2.THRESH_BINARY_INV , THRESH_BINARY的反轉(zhuǎn)。
    • cv2.THRESH_TRUNC 大于閾值部分設(shè)為閾值,否則不變。
    • cv2.THRESH_TOZERO 大于閾值部分不改變,否則設(shè)為0。
    • cv2.THRESH_TOZERO_INV THRESH_TOZERO的反轉(zhuǎn)。
ret, thresh1 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)
ret, thresh2 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY_INV)
ret, thresh3 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TRUNC)
ret, thresh4 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO)
ret, thresh5 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO_INV)
# ps: ret為127 thresh1-5為圖片矩陣
titles = ['Original Image', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV']
images = [img, thresh1, thresh2, thresh3, thresh4, thresh5]
 
for i in range(6):
    plt.subplot(2, 3, i + 1), plt.imshow(images[i], 'gray')
    plt.title(titles[i])
    plt.xticks([]), plt.yticks([])
plt.show()

可以看到,與原始圖片對(duì)比,(閾值127)情況下BINARY在亮的地方更亮了(變?yōu)?55),暗的地方更暗了(變?yōu)榱?)。BINART_INV與其相反。后三種方法同理如上面所解釋。

3. 圖像平滑

對(duì)圖像數(shù)據(jù)進(jìn)行濾波操作。

在這之前我們先來(lái)學(xué)習(xí)一下如何給圖片加入噪聲,變成以下這種。

 可以看到其實(shí)就是在這個(gè)矩陣隨機(jī)位置的像素點(diǎn)變成了白色,255。

img = cv2.imread('./data/gd07.jpg')
 
#獲取圖片行、列、通道數(shù)
rows,cols,channels = img.shape
 
for i in range(0,5000):
    #根據(jù)在0和行-1之間獲取隨機(jī)整數(shù)
    x = np.random.randint(0,rows-1)
    #根據(jù)在0和列-1之間獲取隨機(jī)整數(shù)
    y = np.random.randint(0,cols-1)
 
    #將通道顏色改為255, (255,255,255)
    img[x,y][0] = 255
    img[x,y][1] = 255
    img[x,y][2] = 255
 
cv_show('win',img)

那么現(xiàn)在我們有了這種圖像,該學(xué)習(xí)如何去掉噪音點(diǎn)了~

  • blur = cv2.blur(img, (3, 3))
    • 均值濾波
  • box = cv2.boxFilter(img,-1,(3,3), normalize=True)  
    • 方框?yàn)V波
  • box = cv2.boxFilter(img,-1,(3,3), normalize=False) 
    • 方框?yàn)V波
  • aussian = cv2.GaussianBlur(img, (5, 5), 1)  
    • 高斯濾波
  • median = cv2.medianBlur(img, 5)
    • 中值濾波

均值濾波--簡(jiǎn)單的平均卷積操作(卷積核大小3*3內(nèi)部值都是1,下方參數(shù)是3*3矩陣均值)

blur = cv2.blur(img, (3, 3))
cv_show('win',blur)

方框?yàn)V波--基本和均值一樣,可以選擇歸一化(-1表示顏色通道一致,3*3同上,normalize=True做歸一化,此時(shí)與上方均值濾波是一樣的。)

box = cv2.boxFilter(img,-1,(3,3), normalize=True)  
cv_show('win',box)

方框?yàn)V波--基本和均值一樣,可以選擇歸一化,容易越界。(不再均值除以9,和大于255按255賦值。)

box = cv2.boxFilter(img,-1,(3,3), normalize=False)  
cv_show('win',box)

高斯濾波--高斯模糊的卷積核里的數(shù)值是滿足高斯分布,相當(dāng)于更重視中間的。(此時(shí)卷積核不再全是1,而是離的近的相對(duì)較大,離得遠(yuǎn)的相對(duì)較小。)

aussian = cv2.GaussianBlur(img, (5, 5), 1)  
cv_show('win',aussian)

中值濾波--相當(dāng)于用中值代替(5*5的矩陣25個(gè)數(shù),中間值為處理結(jié)果。)

median = cv2.medianBlur(img, 5)  # 中值濾波
cv_show('win',median)

均值、高斯、中值濾波對(duì)比:

res = np.hstack((blur,aussian,median))
#print (res)
cv_show('median vs average', res)

4. 形態(tài)學(xué)-腐蝕操作

所謂腐蝕操作,就是一點(diǎn)點(diǎn)侵蝕圖片中的內(nèi)容,如我剛剛揮筆寫(xiě)下的“帥”字,它長(zhǎng)了很多“毛”,我們要把他侵蝕掉:

img = cv2.imread('./data/s.jpg', cv2.IMREAD_GRAYSCALE)
kernel = np.ones((3,3),np.uint8) 
erosion = cv2.erode(img,kernel,iterations = 1)
cv_show('win',erosion)

erosion = cv2.erode(img,kernel,iterations = 1) 

  • kernel 卷積核
  • iterations 迭代次數(shù) 

這不比之前更帥了(被腐蝕得線條也變瘦了)

關(guān)于卷積核選取和迭代次數(shù):

上面選用3*3,以帥字為例,當(dāng)3*3區(qū)域出現(xiàn)不同值(如這里0和255),那么就把這個(gè)點(diǎn)腐蝕掉。

卷積核如果選擇太大,可能會(huì)直接被侵蝕沒(méi)掉。  

pie = cv2.imread('./data/pie.png')
kernel = np.ones((30,30),np.uint8) 
erosion_1 = cv2.erode(pie,kernel,iterations = 1)
erosion_2 = cv2.erode(pie,kernel,iterations = 3)
erosion_3 = cv2.erode(pie,kernel,iterations = 5)
res = np.hstack((erosion_1,erosion_2,erosion_3))
cv_show('win',res)

5. 形態(tài)學(xué)-膨脹操作

我們上面不僅把“帥”邊上長(zhǎng)的“毛”去掉了,由于我們選擇3*3卷積核,還順便讓它變瘦了,我們就以它變瘦之后的圖片為例,再讓它胖起來(lái)。

img = cv2.imread('./data/s.jpg',cv2.IMREAD_GRAYSCALE)
kernel = np.ones((3,3),np.uint8) 
shuai = cv2.erode(img,kernel,iterations = 1)
kernel = np.ones((3,3),np.uint8) 
shuai_PLUS = cv2.dilate(shuai,kernel,iterations = 1)
cv_show('win',shuai_PLUS )

shuai_PLUS = cv2.dilate(shuai,kernel,iterations = 1)

同理

pie = cv2.imread('./data/pie.png')
 
kernel = np.ones((30,30),np.uint8) 
dilate_1 = cv2.dilate(pie,kernel,iterations = 1)
dilate_2 = cv2.dilate(pie,kernel,iterations = 2)
dilate_3 = cv2.dilate(pie,kernel,iterations = 3)
res = np.hstack((dilate_1,dilate_2,dilate_3))
cv_show('win',res)

6. 開(kāi)運(yùn)算與閉運(yùn)算

開(kāi):先腐蝕,再膨脹

img = cv2.imread('./data/s.jpg',cv2.IMREAD_GRAYSCALE)
 
kernel = np.ones((5,5),np.uint8) 
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
 
cv_show('win',opening)

opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

閉:先膨脹,再腐蝕

img = cv2.imread('./data/s.jpg',cv2.IMREAD_GRAYSCALE)
 
kernel = np.ones((5,5),np.uint8) 
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
 
cv_show('win',closing)

closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

7. 梯度運(yùn)算

梯度=膨脹-腐蝕

pie = cv2.imread('./data/pie.png',cv2.IMREAD_GRAYSCALE)
kernel = np.ones((7,7),np.uint8) 
dilate = cv2.dilate(pie,kernel,iterations = 5)
erosion = cv2.erode(pie,kernel,iterations = 5)
 
res = np.hstack((dilate,erosion))
 
cv_show('win',res)

以下是經(jīng)過(guò)5次腐蝕和5次膨脹后的圖像: 

獲得邊界信息:梯度運(yùn)算 

gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel)
 
cv_show('win',gradient)

gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel)

8. 禮帽與黑帽

  • 禮帽 = 原始輸入-開(kāi)運(yùn)算結(jié)果
  • 黑帽 = 閉運(yùn)算-原始輸入
# 禮帽
img = cv2.imread('./data/s.jpg',cv2.IMREAD_GRAYSCALE)
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
cv_show('win',tophat)

(只剩下“毛”了 ) 

# 黑帽
img = cv2.imread('./data/s.jpg',cv2.IMREAD_GRAYSCALE)
blackhat  = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT, kernel)
cv_show('win',blackhat)

(只剩下小輪廓了) 

9. 圖像梯度-Sobel算子

我們依舊引入圖像pie

img = cv2.imread('./data/pie.png',cv2.IMREAD_GRAYSCALE)
cv_show('win',img)

 可見(jiàn)在邊緣部分(黑白交界),梯度比較大。

定義Gx,Gy處理水平和豎直方向上的梯度。

sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)
 
cv_show('sobelx',sobelx)

dst = cv2.Sobel(src, ddepth, dx, dy, ksize)

    • ddepth:圖像的深度(一般-1)
    • dx和dy分別表示水平和豎直方向
    • ksize是Sobel算子的大小
    • cv2.CV_64F處理差為負(fù)數(shù)情況。

為什么只有一半呢?

我們定義的矩陣計(jì)算時(shí)是右-左,白-黑>0正常顯示,黑-白<0進(jìn)行了截?cái)酁?, 

白到黑是正數(shù),黑到白就是負(fù)數(shù)了,所有的負(fù)數(shù)會(huì)被截?cái)喑?,所以要取絕對(duì)值。

我們需要對(duì)其進(jìn)行一下轉(zhuǎn)換:

sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)
sobelx = cv2.convertScaleAbs(sobelx)
cv_show('sobelx',sobelx)

sobelx = cv2.convertScaleAbs(sobelx)

 上面是水平方向,下面是豎直方向:

sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=3)
sobely = cv2.convertScaleAbs(sobely)  
cv_show('sobelx',sobely)

分別計(jì)算x和y,再求和:

sobelxy = cv2.addWeighted(sobelx,0.5,sobely,0.5,0)
cv_show('sobelxy',sobelxy)

但不建議都是設(shè)置成1,效果可能不好。

sobelxy=cv2.Sobel(img,cv2.CV_64F,1,1,ksize=3)
sobelxy = cv2.convertScaleAbs(sobelxy) 
cv_show('sobelxy',sobelxy)

建議:分別算Gx,Gy自己進(jìn)行求和操作:

img = cv2.imread('./data/gd01.jpg',cv2.IMREAD_GRAYSCALE)
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)
sobelx = cv2.convertScaleAbs(sobelx)
sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=3)
sobely = cv2.convertScaleAbs(sobely)
sobelxy = cv2.addWeighted(sobelx,0.5,sobely,0.5,0)
 
sobelxy2=cv2.Sobel(img,cv2.CV_64F,1,1,ksize=3)
sobelxy2 = cv2.convertScaleAbs(sobelxy2)
res = np.hstack((sobelxy,sobelxy2))
cv_show('res',res)

10. 圖像梯度-Scharr算子和laplacian算子

Scharr算子

laplacian算子 

核中數(shù)值有差異,Scharr敏感些。

laplacian算子涉及二階導(dǎo),更加敏感同時(shí)對(duì)噪聲也更加敏感,一般和其他方法配合使用。

原理同上,我們來(lái)對(duì)比一下這三種算子效果:

img = cv2.imread('./data/gd01.jpg',cv2.IMREAD_GRAYSCALE)
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)
sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=3)
sobelx = cv2.convertScaleAbs(sobelx)   
sobely = cv2.convertScaleAbs(sobely)  
sobelxy =  cv2.addWeighted(sobelx,0.5,sobely,0.5,0)  
 
scharrx = cv2.Scharr(img,cv2.CV_64F,1,0)
scharry = cv2.Scharr(img,cv2.CV_64F,0,1)
scharrx = cv2.convertScaleAbs(scharrx)   
scharry = cv2.convertScaleAbs(scharry)  
scharrxy =  cv2.addWeighted(scharrx,0.5,scharry,0.5,0) 
 
laplacian = cv2.Laplacian(img,cv2.CV_64F)
laplacian = cv2.convertScaleAbs(laplacian)   
 
res = np.hstack((sobelxy,scharrxy,laplacian))
cv_show('res',res)

scharrx = cv2.Scharr(img,cv2.CV_64F,1,0)

laplacian = cv2.Laplacian(img,cv2.CV_64F) 

10. 知識(shí)點(diǎn)總結(jié)*

圖像閾值:

ret, thresh1 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)
ret, thresh2 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY_INV)
ret, thresh3 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TRUNC)
ret, thresh4 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO)
ret, thresh5 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO_INV)
# ps: ret為127 thresh1-5為圖片矩陣
titles = ['Original Image', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV']
images = [img, thresh1, thresh2, thresh3, thresh4, thresh5]
 
for i in range(6):
    plt.subplot(2, 3, i + 1), plt.imshow(images[i], 'gray')
    plt.title(titles[i])
    plt.xticks([]), plt.yticks([])
plt.show()

圖像平滑

# 加入噪聲
img = cv2.imread('./data/gd07.jpg')
 
#獲取圖片行、列、通道數(shù)
rows,cols,channels = img.shape
 
for i in range(0,5000):
    #根據(jù)在0和行-1之間獲取隨機(jī)整數(shù)
    x = np.random.randint(0,rows-1)
    #根據(jù)在0和列-1之間獲取隨機(jī)整數(shù)
    y = np.random.randint(0,cols-1)
 
    #將通道顏色改為255, (255,255,255)
    img[x,y][0] = 255
    img[x,y][1] = 255
    img[x,y][2] = 255
 
cv_show('win',img)
blur = cv2.blur(img, (3, 3))
box = cv2.boxFilter(img,-1,(3,3), normalize=True)  
aussian = cv2.GaussianBlur(img, (5, 5), 1)  
median = cv2.medianBlur(img, 5) 
 
res = np.hstack((blur,aussian,median))
cv_show('median vs average', res)

形態(tài)學(xué)-腐蝕

img = cv2.imread('./data/s.jpg', cv2.IMREAD_GRAYSCALE)
kernel = np.ones((3,3),np.uint8) 
erosion = cv2.erode(img,kernel,iterations = 1)
cv_show('win',erosion)

形態(tài)學(xué)-膨脹

img = cv2.imread('./data/s.jpg',cv2.IMREAD_GRAYSCALE)
kernel = np.ones((3,3),np.uint8) 
shuai = cv2.erode(img,kernel,iterations = 1)
kernel = np.ones((3,3),np.uint8) 
shuai_PLUS = cv2.dilate(shuai,kernel,iterations = 1)
cv_show('win',shuai_PLUS )

開(kāi)運(yùn)算與閉運(yùn)算

img = cv2.imread('./data/s.jpg',cv2.IMREAD_GRAYSCALE)
 
kernel = np.ones((5,5),np.uint8) 
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
 
cv_show('win',opening)

梯度運(yùn)算

gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel)
 
cv_show('win',gradient)

禮帽與黑帽

# 禮帽
img = cv2.imread('./data/s.jpg',cv2.IMREAD_GRAYSCALE)
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
cv_show('win',tophat)
 
 
# 黑帽
img = cv2.imread('./data/s.jpg',cv2.IMREAD_GRAYSCALE)
blackhat  = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT, kernel)
cv_show('win',blackhat)

Sobel、Scharr、Laplacian算子

img = cv2.imread('./data/gd01.jpg',cv2.IMREAD_GRAYSCALE)
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)
sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=3)
sobelx = cv2.convertScaleAbs(sobelx)   
sobely = cv2.convertScaleAbs(sobely)  
sobelxy =  cv2.addWeighted(sobelx,0.5,sobely,0.5,0)  
 
scharrx = cv2.Scharr(img,cv2.CV_64F,1,0)
scharry = cv2.Scharr(img,cv2.CV_64F,0,1)
scharrx = cv2.convertScaleAbs(scharrx)   
scharry = cv2.convertScaleAbs(scharry)  
scharrxy =  cv2.addWeighted(scharrx,0.5,scharry,0.5,0) 
 
laplacian = cv2.Laplacian(img,cv2.CV_64F)
laplacian = cv2.convertScaleAbs(laplacian)   
 
res = np.hstack((sobelxy,scharrxy,laplacian))
cv_show('res',res)

總結(jié)

到此這篇關(guān)于openCV入門(mén)學(xué)習(xí)基礎(chǔ)教程第二篇的文章就介紹到這了,更多相關(guān)openCV第二篇內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python面向?qū)ο蟪绦蛟O(shè)計(jì)類變量與成員變量、類方法與成員方法用法分析

    Python面向?qū)ο蟪绦蛟O(shè)計(jì)類變量與成員變量、類方法與成員方法用法分析

    這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計(jì)類變量與成員變量、類方法與成員方法用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了類變量與成員變量、類方法與成員方法、類方法與靜態(tài)方法等概念、原理及使用技巧,需要的朋友可以參考下
    2019-04-04
  • 利用pygame完成動(dòng)畫(huà)精靈和碰撞檢測(cè)

    利用pygame完成動(dòng)畫(huà)精靈和碰撞檢測(cè)

    這篇文章主要介紹了利用pygame完成動(dòng)畫(huà)精靈和碰撞檢測(cè),代碼詳細(xì),內(nèi)容豐富,對(duì)于想要學(xué)習(xí)pygame的朋友來(lái)講是一個(gè)不錯(cuò)的練習(xí),需要的朋友可以參考下
    2021-04-04
  • 讓你相見(jiàn)恨晚的十個(gè)Python騷操作

    讓你相見(jiàn)恨晚的十個(gè)Python騷操作

    這篇文章主要給大家介紹了十個(gè)讓你相見(jiàn)恨晚的Python騷操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python 實(shí)現(xiàn)隨機(jī)數(shù)詳解及實(shí)例代碼

    Python 實(shí)現(xiàn)隨機(jī)數(shù)詳解及實(shí)例代碼

    這篇文章主要介紹了Python 實(shí)現(xiàn)隨機(jī)數(shù)詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 如何利用pyecharts畫(huà)好看的餅狀圖

    如何利用pyecharts畫(huà)好看的餅狀圖

    這篇文章主要給大家介紹了關(guān)于如何利用pyecharts畫(huà)好看的餅狀圖的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 使用PyTorch實(shí)現(xiàn)去噪擴(kuò)散模型的完整代碼

    使用PyTorch實(shí)現(xiàn)去噪擴(kuò)散模型的完整代碼

    在本文中,我們將深入研究DDPM的復(fù)雜性,涵蓋其訓(xùn)練過(guò)程,包括正向和逆向過(guò)程,并探索如何執(zhí)行采樣,在整個(gè)探索過(guò)程中,我們將使用PyTorch從頭開(kāi)始構(gòu)建DDPM,并完成其完整的訓(xùn)練,需要的朋友可以參考下
    2024-01-01
  • python連接MySQL數(shù)據(jù)庫(kù)實(shí)例分析

    python連接MySQL數(shù)據(jù)庫(kù)實(shí)例分析

    這篇文章主要介紹了python連接MySQL數(shù)據(jù)庫(kù),實(shí)例分析了Python操作MySQL的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • keras實(shí)現(xiàn)VGG16 CIFAR10數(shù)據(jù)集方式

    keras實(shí)現(xiàn)VGG16 CIFAR10數(shù)據(jù)集方式

    這篇文章主要介紹了keras實(shí)現(xiàn)VGG16 CIFAR10數(shù)據(jù)集方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • 在python中利用try..except來(lái)代替if..else的用法

    在python中利用try..except來(lái)代替if..else的用法

    今天小編就為大家分享一篇在python中利用try..except來(lái)代替if..else的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • 解決Tensorboard 不顯示計(jì)算圖graph的問(wèn)題

    解決Tensorboard 不顯示計(jì)算圖graph的問(wèn)題

    今天小編就為大家分享一篇解決Tensorboard 不顯示計(jì)算圖graph的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02

最新評(píng)論