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

  • 大小: 1.44MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-08-27
  • 語言: 其他
  • 標簽: 圖像識別??

資源簡介

(OpenCV)圖像目標尺寸檢測 pyimagesearch技術博客上的一篇文章,《Measuring size of objects in an image with OpenCV》,原文作者:Adrian Rosebrock 。 改代碼可直接執行

資源截圖

代碼片段和文件信息

#?USAGE
#?python?object_size.py?--image?images/example_01.png?--width?0.955
#?python?object_size.py?--image?images/example_02.png?--width?0.955
#?python?object_size.py?--image?images/example_03.png?--width?3.5

#?import?the?necessary?packages
from?scipy.spatial?import?distance?as?dist
from?imutils?import?perspective
from?imutils?import?contours
import?numpy?as?np
import?argparse
import?imutils
import?cv2

def?midpoint(ptA?ptB):
return?((ptA[0]?+?ptB[0])?*?0.5?(ptA[1]?+?ptB[1])?*?0.5)

#?construct?the?argument?parse?and?parse?the?arguments
ap?=?argparse.ArgumentParser()
ap.add_argument(“-i“?“--image“?required=True
help=“path?to?the?input?image“)
ap.add_argument(“-w“?“--width“?type=float?required=True
help=“width?of?the?left-most?object?in?the?image?(in?inches)“)
args?=?vars(ap.parse_args())

#?load?the?image?convert?it?to?grayscale?and?blur?it?slightly
image?=?cv2.imread(args[“image“])
gray?=?cv2.cvtColor(image?cv2.COLOR_BGR2GRAY)
gray?=?cv2.GaussianBlur(gray?(7?7)?0)

#?perform?edge?detection?then?perform?a?dilation?+?erosion?to
#?close?gaps?in?between?object?edges
edged?=?cv2.Canny(gray?50?100)
edged?=?cv2.dilate(edged?None?iterations=1)
edged?=?cv2.erode(edged?None?iterations=1)

#?find?contours?in?the?edge?map
cnts?=?cv2.findContours(edged.copy()?cv2.RETR_EXTERNAL
cv2.CHAIN_APPROX_SIMPLE)
cnts?=?cnts[0]?if?imutils.is_cv2()?else?cnts[1]

#?sort?the?contours?from?left-to-right?and?initialize?the
#?‘pixels?per?metric‘?calibration?variable
(cnts?_)?=?contours.sort_contours(cnts)
pixelsPerMetric?=?None

#?loop?over?the?contours?individually
for?c?in?cnts:
#?if?the?contour?is?not?sufficiently?large?ignore?it
if?cv2.contourArea(c)? continue

#?compute?the?rotated?bounding?box?of?the?contour
orig?=?image.copy()
box?=?cv2.minAreaRect(c)
box?=?cv2.cv.BoxPoints(box)?if?imutils.is_cv2()?else?cv2.boxPoints(box)
box?=?np.array(box?dtype=“int“)

#?order?the?points?in?the?contour?such?that?they?appear
#?in?top-left?top-right?bottom-right?and?bottom-left
#?order?then?draw?the?outline?of?the?rotated?bounding
#?box
box?=?perspective.order_points(box)
cv2.drawContours(orig?[box.astype(“int“)]?-1?(0?255?0)?2)

#?loop?over?the?original?points?and?draw?them
for?(x?y)?in?box:
cv2.circle(orig?(int(x)?int(y))?5?(0?0?255)?-1)

#?unpack?the?ordered?bounding?box?then?compute?the?midpoint
#?between?the?top-left?and?top-right?coordinates?followed?by
#?the?midpoint?between?bottom-left?and?bottom-right?coordinates
(tl?tr?br?bl)?=?box
(tltrX?tltrY)?=?midpoint(tl?tr)
(blbrX?blbrY)?=?midpoint(bl?br)

#?compute?the?midpoint?between?the?top-left?and?top-right?points
#?followed?by?the?midpoint?between?the?top-righ?and?bottom-right
(tlblX?tlblY)?=?midpoint(tl?bl)
(trbrX?trbrY)?=?midpoint(tr?br)

#?draw?the?midpoints?on?the?image
cv2.circle(orig?(int(tltrX)?int(tltrY))?5?(255?0?0)?-1)
cv2.circle(orig?(int(blbrX)?int(blbrY))?5?(255?0?0)?-1)
cv2.circle(orig?(int(tlblX)?

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-03-16?18:54??size-of-objects\
?????目錄???????????0??2016-03-11?12:28??size-of-objects\images\
?????文件??????389285??2016-03-10?14:58??size-of-objects\images\example_01.png
?????文件??????691806??2016-03-10?16:52??size-of-objects\images\example_02.png
?????文件??????426623??2016-03-11?11:34??size-of-objects\images\example_03.png
?????文件????????4150??2016-03-14?14:17??size-of-objects\object_size.py

評論

共有 條評論