91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.61MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-08-31
  • 語言: Python
  • 標簽: 車牌定位??

資源簡介

使用python進行圖片中車牌的定位,并用綠色線條標識,各位可以在這個基礎上進行改進

資源截圖

代碼片段和文件信息

#?-*-?coding:?utf-8?-*-
#?@Author:?hyzhangyong
#?@Date:???2016-06-23?16:21:54
#?@Last?Modified?by:???hyzhangyong
#?@Last?Modified?time:?2016-06-24?00:00:47
import?sys
import?cv2
import?numpy?as?np

def?preprocess(gray):
#?#?直方圖均衡化
#?equ?=?cv2.equalizeHist(gray)
#?高斯平滑
gaussian?=?cv2.GaussianBlur(gray?(3?3)?0?0?cv2.BORDER_DEFAULT)
#?中值濾波
median?=?cv2.medianBlur(gaussian?5)
#?Sobel算子,X方向求梯度
sobel?=?cv2.Sobel(median?cv2.CV_8U?1?0?ksize?=?3)
#?二值化
ret?binary?=?cv2.threshold(sobel?170?255?cv2.THRESH_BINARY)
#?膨脹和腐蝕操作的核函數
element1?=?cv2.getStructuringElement(cv2.MORPH_RECT?(9?1))
element2?=?cv2.getStructuringElement(cv2.MORPH_RECT?(9?7))
#?膨脹一次,讓輪廓突出
dilation?=?cv2.dilate(binary?element2?iterations?=?1)
#?腐蝕一次,去掉細節
erosion?=?cv2.erode(dilation?element1?iterations?=?1)
#?再次膨脹,讓輪廓明顯一些
dilation2?=?cv2.dilate(erosion?element2iterations?=?3)
cv2.imshow(‘dilation2‘dilation2)
cv2.waitKey(0)
return?dilation2

def?findPlateNumberRegion(img):
region?=?[]
#?查找輪廓
contourshierarchy?=?cv2.findContours(img?cv2.RETR_TREE?cv2.CHAIN_APPROX_SIMPLE)

#?篩選面積小的
for?i?in?range(len(contours)):
cnt?=?contours[i]
#?計算該輪廓的面積
area?=?cv2.contourArea(cnt)

#?面積小的都篩選掉
if?(area? continue

#?輪廓近似,作用很小
epsilon?=?0.001?*?cv2.arcLength(cntTrue)
approx?=?cv2.approxPolyDP(cnt?epsilon?True)

#?找到最小的矩形,該矩形可能有方向
rect?=?cv2.minAreaRect(cnt)
print?“rect?is:?“
print?rect

#?box是四個點的坐標
box?=?cv2.cv.BoxPoints(rect)
box?=?np.int0(box)

#?計算高和寬
height?=?abs(box[0][1]?-?box[2][1])
width?=?abs(box[0][0]?-?box[2][0])
#?車牌正常情況下長高比在2.7-5之間
ratio?=float(width)?/?float(height)
print?ratio
if?(ratio?>?5?or?ratio? continue
region.append(box)

return?region

def?detect(img):
#?轉化成灰度圖
gray?=?cv2.cvtColor(img?cv2.COLOR_BGR2GRAY)

#?形態學變換的預處理
dilation?=?preprocess(gray)

#?查找車牌區域
region?=?findPlateNumberRegion(dilation)

#?用綠線畫出這些找到的輪廓
for?box?in?region:
cv2.drawContours(img?[box]?0?(0?255?0)?2)
ys?=?[box[0?1]?box[1?1]?box[2?1]?box[3?1]]
xs?=?[box[0?0]?box[1?0]?box[2?0]?box[3?0]]
ys_sorted_index?=?np.argsort(ys)
xs_sorted_index?=?np.argsort(xs)

x1?=?box[xs_sorted_index[0]?0]
x2?=?box[xs_sorted_index[3]?0]

y1?=?box[ys_sorted_index[0]?1]
y2?=?box[ys_sorted_index[3]?1]

img_org2?=?img.copy()
img_plate?=?img_org2[y1:y2?x1:x2]
cv2.imshow(‘number?plate‘?img_plate)
cv2.imwrite(‘number_plate.jpg‘?img_plate)

cv2.namedWindow(‘img‘?cv2.WINDOW_NORMAL)
cv2.imshow(‘img‘?img)

#?帶輪廓的圖片
cv2.imwrite(‘contours.png‘?img)

cv2.waitKey(0)
cv2.destroyAllWindows()


if?__name__?==?‘__main__‘:
imagePath?=?‘10.jpg‘
img?=?cv2.imread(imagePath)
detect(img)

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-06-23?16:40??platenumber-master\
?????文件???????99321??2016-06-23?16:40??platenumber-master\1.jpg
?????文件???????94949??2016-06-23?16:40??platenumber-master\10.jpg
?????文件???????39908??2016-06-23?16:40??platenumber-master\2.jpg
?????文件??????176113??2016-06-23?16:40??platenumber-master\3.jpg
?????文件???????34077??2016-06-23?16:40??platenumber-master\4.jpg
?????文件??????303926??2016-06-23?16:40??platenumber-master\5.jpg
?????文件??????130229??2016-06-23?16:40??platenumber-master\6.jpg
?????文件???????39518??2016-06-23?16:40??platenumber-master\7.jpg
?????文件???????11179??2016-06-23?16:40??platenumber-master\8.jpg
?????文件??????135264??2016-06-23?16:40??platenumber-master\9.jpg
?????文件??????????60??2016-06-23?16:40??platenumber-master\README.md
?????文件??????525484??2016-06-23?16:40??platenumber-master\contours.png
?????文件???????11180??2016-06-23?16:40??platenumber-master\number_plate.jpg
?????文件???????90527??2016-06-23?16:40??platenumber-master\plate-number.jpg
?????文件????????3062??2016-06-23?16:40??platenumber-master\platenumber.py

評論

共有 條評論