婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫(kù) > OpenCV半小時(shí)掌握基本操作之對(duì)象測(cè)量

OpenCV半小時(shí)掌握基本操作之對(duì)象測(cè)量

熱門標(biāo)簽:銀川電話機(jī)器人電話 企業(yè)微信地圖標(biāo)注 鶴壁手機(jī)自動(dòng)外呼系統(tǒng)違法嗎 高德地圖標(biāo)注收入咋樣 怎么辦理400客服電話 沈陽防封電銷電話卡 B52系統(tǒng)電梯外呼顯示E7 萊蕪電信外呼系統(tǒng) 地圖標(biāo)注多個(gè)

【OpenCV】⚠️高手勿入! 半小時(shí)學(xué)會(huì)基本操作 ⚠️ 對(duì)象測(cè)量

概述

OpenCV 是一個(gè)跨平臺(tái)的計(jì)算機(jī)視覺庫(kù), 支持多語言, 功能強(qiáng)大. 今天小白就帶大家一起攜手走進(jìn) OpenCV 的世界.

對(duì)象測(cè)量

對(duì)象測(cè)量可以幫助我們進(jìn)行矩陣計(jì)算:

  • 獲取弧長(zhǎng)與面積
  • 多邊形擬合
  • 計(jì)算圖片對(duì)象中心

原點(diǎn)距:

中心距:

圖像重心坐標(biāo):

多邊形擬合

步驟:

  1. 讀取圖片
  2. 轉(zhuǎn)換成灰度圖
  3. 二值化
  4. 輪廓檢測(cè)
  5. 計(jì)算輪廓周長(zhǎng)
  6. 多邊形擬合

格式:

cv2.approxPolyDP(curve, epsilon, closed, approxCurve=None)

參數(shù):

  • curve: 輸入輪廓
  • epsilon: 逼近曲率, 越小表示相似逼近越厲害
  • closed: 是否閉合

代碼:

import cv2
from matplotlib import pyplot as plt

# 讀取圖片
image = cv2.imread("polygon.jpg")
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 二值化
ret, thresh = cv2.threshold(image_gray, 127, 255, cv2.THRESH_OTSU)

# 計(jì)算輪廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)

# 輪廓近似
perimeter = cv2.arcLength(contours[0], True)
approx = cv2.approxPolyDP(contours[0], perimeter * 0.1, True)

# 繪制輪廓
result1 = cv2.drawContours(image.copy(), contours, 0, (0, 0, 255), 2)
result2 = cv2.drawContours(image.copy(), [approx], -1, (0, 0, 255), 2)

# 圖片展示
f, ax = plt.subplots(1, 2, figsize=(12, 8))

# 子圖
ax[0].imshow(cv2.cvtColor(result1, cv2.COLOR_BGR2RGB))
ax[1].imshow(cv2.cvtColor(result2, cv2.COLOR_BGR2RGB))

# 標(biāo)題
ax[0].set_title("contour")
ax[1].set_title("approx")

plt.show()

輸出結(jié)果:

計(jì)算對(duì)象中心

cv2.moments()可以幫助我們得到輪距, 從而進(jìn)一步計(jì)算圖片對(duì)象的中心.

格式:

cv2.moments(array, binaryImage=None)

參數(shù):

  • array: 輪廓
  • binaryImage: 是否把 array 內(nèi)的非零值都處理為 1, 默認(rèn)為 None

例 1:

import numpy as np
import cv2

# 讀取圖片
image = cv2.imread("shape.jpg")
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 二值化
ret, thresh = cv2.threshold(image_gray, 0, 255, cv2.THRESH_OTSU)

# 獲取輪廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 遍歷每個(gè)輪廓
for i, contour in enumerate(contours):

    # 面積
    area = cv2.contourArea(contour)

    # 外接矩形
    x, y, w, h = cv2.boundingRect(contour)

    # 獲取論距
    mm = cv2.moments(contour)
    print(mm, type(mm))  # 調(diào)試輸出 (字典類型)

    # 獲取中心
    cx = mm["m10"] / mm["m00"]
    cy = mm["m01"] / mm["m00"]

    # 獲取
    cv2.circle(image, (np.int(cx), np.int(cy)), 3, (0, 255, 255), -1)
    cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)

# 圖片展示
cv2.imshow("result", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 保存圖片
cv2.imwrite("result1.jpg", image)

輸出結(jié)果:

{'m00': 8500.5, 'm10': 1027805.8333333333, 'm01': 2991483.6666666665, 'm20': 131713199.41666666, 'm11': 365693040.4583333, 'm02': 1061366842.5833333, 'm30': 17848380183.95, 'm21': 47383693552.933334, 'm12': 131067057115.4, 'm03': 379419590249.80005, 'mu20': 7439941.251379013, 'mu11': 3989097.993609071, 'mu02': 8608236.862088203, 'mu30': 123631672.32175827, 'mu21': 66721478.995661736, 'mu12': -71778847.06811166, 'mu03': -153890589.33666992, 'nu20': 0.10296285178405724, 'nu11': 0.05520593397050295, 'nu02': 0.11913113104071384, 'nu30': 0.01855746134472764, 'nu21': 0.010015081443714638, 'nu12': -0.010774206599494254, 'nu03': -0.023099409797678556} class 'dict'>
{'m00': 15986.0, 'm10': 6026846.0, 'm01': 5179910.0, 'm20': 2292703160.333333, 'm11': 1952864629.0, 'm02': 1698884573.6666665, 'm30': 879850714149.0, 'm21': 742898718990.0, 'm12': 640491821107.3334, 'm03': 563738081200.0, 'mu20': 20535469.371490955, 'mu11': -1620.4595272541046, 'mu02': 20449217.223528624, 'mu30': -223791.80407714844, 'mu21': 151823.5922050476, 'mu12': 209097.09715557098, 'mu03': -152351.75524902344, 'nu20': 0.08035724088041474, 'nu11': -6.34101194440178e-06, 'nu02': 0.08001972803837157, 'nu30': -6.926194062792776e-06, 'nu21': 4.698830090131295e-06, 'nu12': 6.471403538830498e-06, 'nu03': -4.715176353366703e-06} class 'dict'>
{'m00': 11396.0, 'm10': 6176598.0, 'm01': 2597707.833333333, 'm20': 3349665027.0, 'm11': 1407949570.5833333, 'm02': 655725464.8333333, 'm30': 1817641012813.0, 'm21': 763562731879.1167, 'm12': 355401284084.75, 'm03': 178062030454.85, 'mu20': 1967338.8985610008, 'mu11': -324.81426215171814, 'mu02': 63580327.29723644, 'mu30': -21712.3154296875, 'mu21': 9988180.769364119, 'mu12': 186586.19526672363, 'mu03': -396148296.0755005, 'nu20': 0.015148662774911266, 'nu11': -2.501095121647356e-06, 'nu02': 0.48957347310563326, 'nu30': -1.5661200090835562e-06, 'nu21': 0.0007204523998327835, 'nu12': 1.3458554191159022e-05, 'nu03': -0.028574371768747265} class 'dict'>
{'m00': 11560.0, 'm10': 4184863.0, 'm01': 1485772.0, 'm20': 1524366924.3333333, 'm11': 537875136.1666666, 'm02': 203000229.0, 'm30': 558641678337.5, 'm21': 195927630288.0, 'm12': 73490515262.5, 'm03': 29185458885.0, 'mu20': 9394750.564388752, 'mu11': 7292.807151079178, 'mu02': 12038426.579238743, 'mu30': -36898.54187011719, 'mu21': 58255.2828142643, 'mu12': 46557.39966964722, 'mu03': -74896.38109207153, 'nu20': 0.07030230843432154, 'nu11': 5.457315488828541e-05, 'nu02': 0.0900853271874644, 'nu30': -2.568115896721007e-06, 'nu21': 4.0545319755426715e-06, 'nu12': 3.2403664790463073e-06, 'nu03': -5.21274221530133e-06} class 'dict'>
{'m00': 7136.5, 'm10': 931499.3333333333, 'm01': 837811.3333333333, 'm20': 126603461.91666666, 'm11': 109342970.95833333, 'm02': 104031211.58333333, 'm30': 17834967892.7, 'm21': 14861464047.05, 'm12': 13575875235.816666, 'm03': 13540680151.900002, 'mu20': 5018510.189567342, 'mu11': -13253.86603589356, 'mu02': 5673777.230110094, 'mu30': -177930.16611862183, 'mu21': 1921792.6864708662, 'mu12': 201480.14046394825, 'mu03': -4564410.182851791, 'nu20': 0.09853811951621429, 'nu11': -0.00026023879322029775, 'nu02': 0.11140424502299628, 'nu30': -4.135579833554871e-05, 'nu21': 0.00044667676380089435, 'nu12': 4.682945134828951e-05, 'nu03': -0.0010608927713634498} class 'dict'>

例 2:

import numpy as np
import cv2

# 讀取圖片
image = cv2.imread("shape.jpg")
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 二值化
ret, thresh = cv2.threshold(image_gray, 0, 255, cv2.THRESH_OTSU)

# 獲取輪廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 遍歷每個(gè)輪廓
for i, contour in enumerate(contours):

    # 面積
    area = cv2.contourArea(contour)

    # 外接矩形
    x, y, w, h = cv2.boundingRect(contour)

    # 獲取論距
    mm = cv2.moments(contour)

    # 獲取中心
    cx = mm["m10"] / mm["m00"]
    cy = mm["m01"] / mm["m00"]

    # 獲取
    cv2.circle(image, (np.int(cx), np.int(cy)), 3, (0, 255, 255), -1)
    cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)

    # 多變形擬合
    approxCurve = cv2.approxPolyDP(contour, 4, True)
    print(approxCurve.shape)

    # 圓圈
    if approxCurve.shape[0] > 10:
        cv2.drawContours(image, contours, i, (0, 255, 0), 2)  # 綠色

    # 4-10邊形
    if 10 >= approxCurve.shape[0] > 3:
        cv2.drawContours(image, contours, i, (240, 32, 160), 2)  # 紫色

    # 三角形
    if approxCurve.shape[0] == 3:
        cv2.drawContours(image, contours, i, (250, 206, 135), 2)  # 藍(lán)色


# 圖片展示
cv2.imshow("result", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 保存圖片
cv2.imwrite("result2.jpg", image)

輸出結(jié)果:

(3, 1, 2)
(6, 1, 2)
(7, 1, 2)
(16, 1, 2)
(10, 1, 2)

到此這篇關(guān)于OpenCV半小時(shí)掌握基本操作之對(duì)象測(cè)量的文章就介紹到這了,更多相關(guān)OpenCV對(duì)象測(cè)量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • OpenCV半小時(shí)掌握基本操作之圖像裁剪融合
  • OpenCV半小時(shí)掌握基本操作之圖像處理
  • opencv-python基本圖像處理詳解
  • OpenCV圖像處理基本操作詳解
  • Opencv圖像處理之詳解掩膜mask
  • 基于python的opencv圖像處理實(shí)現(xiàn)對(duì)斑馬線的檢測(cè)示例
  • Python+OpenCV圖像處理——圖像二值化的實(shí)現(xiàn)
  • OpenCV半小時(shí)掌握基本操作之分水嶺算法
  • OpenCV半小時(shí)掌握基本操作之傅里葉變換
  • OpenCV半小時(shí)掌握基本操作之圖像輪廓
  • OpenCV半小時(shí)掌握基本操作之直方圖
  • OpenCV半小時(shí)掌握基本操作之模板匹配
  • OpenCV半小時(shí)掌握基本操作之圓圈檢測(cè)
  • OpenCV半小時(shí)掌握基本操作之圖像基礎(chǔ)操作

標(biāo)簽:呼倫貝爾 三亞 銀川 湘西 烏魯木齊 安慶 呼倫貝爾 葫蘆島

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《OpenCV半小時(shí)掌握基本操作之對(duì)象測(cè)量》,本文關(guān)鍵詞  OpenCV,半小時(shí),掌握,基本操作,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《OpenCV半小時(shí)掌握基本操作之對(duì)象測(cè)量》相關(guān)的同類信息!
  • 本頁收集關(guān)于OpenCV半小時(shí)掌握基本操作之對(duì)象測(cè)量的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美日本一区二区| 岛国一区二区三区| 一区二区三区自拍| 亚洲视频图片小说| 亚洲品质自拍视频| 日韩精品免费专区| 麻豆一区二区三区| 福利电影一区二区| 欧美影院精品一区| 久久综合色播五月| 国产精品麻豆视频| 欧美人妇做爰xxxⅹ性高电影| 欧美人体做爰大胆视频| 国产精品美女久久久久久| 亚洲大片免费看| www.亚洲色图.com| 久久在线免费观看| 蜜臀a∨国产成人精品| 成人激情黄色小说| 亚洲国产中文字幕| 中文字幕一区二区在线播放| 亚洲精品欧美激情| 国产毛片精品视频| 色综合久久久久综合| 久久成人免费电影| 色综合中文字幕| 久久精品人人做| 精品一区免费av| 精品sm在线观看| 日本一不卡视频| 日韩欧美一区在线| 精品亚洲aⅴ乱码一区二区三区| 日韩三级视频在线看| 极品少妇xxxx精品少妇| 久久精品亚洲精品国产欧美kt∨| 久久成人羞羞网站| 91视频一区二区三区| 亚洲日本va在线观看| 欧美xxxx在线观看| 亚洲人成在线播放网站岛国| 人妖欧美一区二区| 国内精品久久久久影院一蜜桃| 色狠狠色狠狠综合| 亚洲成人黄色小说| 亚洲在线观看免费| 久久久99精品免费观看不卡| 精品一区二区在线观看| 欧美精品日韩精品| 亚洲图片有声小说| 99麻豆久久久国产精品免费| 久久久久国产精品麻豆| 久久不见久久见免费视频7| 欧美老年两性高潮| 欧美一区二区三区免费观看视频| 日本亚洲欧美天堂免费| 国产精品丝袜一区| 久久色.com| 成人蜜臀av电影| 亚洲午夜影视影院在线观看| 欧美日高清视频| 91麻豆国产自产在线观看| www.日韩在线| 日韩av电影免费观看高清完整版| 97精品国产露脸对白| 欧美国产1区2区| 国产成人免费在线观看不卡| 日韩精品在线一区| 久久99国产乱子伦精品免费| 欧美电视剧在线看免费| 久久99日本精品| 久久亚洲捆绑美女| 丁香婷婷综合网| 国产精品久久久久久久久搜平片| 国产成人免费在线观看不卡| 国产精品免费看片| 色悠悠久久综合| 亚洲伊人伊色伊影伊综合网| 欧美性色综合网| 天天综合天天综合色| 69堂国产成人免费视频| 精品一区二区三区免费毛片爱| 久久久久久久久久久99999| 麻豆精品国产传媒mv男同| 国产亚洲成av人在线观看导航 | 亚洲私人黄色宅男| 色综合婷婷久久| 国产精品欧美一区喷水| 色综合久久九月婷婷色综合| 亚洲国产日韩a在线播放性色| 欧美一区二区三区在线| 国产成人av电影在线| 一区二区免费看| 日韩视频免费观看高清在线视频| 成人午夜av电影| 日韩影视精彩在线| 欧美国产视频在线| 欧美视频在线播放| 丁香婷婷综合色啪| 午夜欧美电影在线观看| 国产亚洲精久久久久久| 欧美日韩亚洲国产综合| 国产黄色精品网站| 久久久久久夜精品精品免费| 日本精品视频一区二区| 久久国产三级精品| 一级女性全黄久久生活片免费| 日韩欧美黄色影院| 97久久超碰精品国产| 韩国三级电影一区二区| 亚洲二区视频在线| 中文在线免费一区三区高中清不卡| 在线看国产一区| 风间由美一区二区av101| 亚洲成a人片综合在线| 欧美激情中文字幕一区二区| 欧美一卡二卡在线观看| 欧美天堂一区二区三区| 99久久精品国产精品久久| 激情文学综合网| 蜜臀av性久久久久蜜臀aⅴ四虎| 一区二区三区中文字幕精品精品 | 91精品国产全国免费观看| 国产高清久久久| 轻轻草成人在线| 午夜视频在线观看一区二区三区| 国产精品传媒入口麻豆| 久久久久久亚洲综合| 337p粉嫩大胆色噜噜噜噜亚洲 | 欧美成人午夜电影| 卡一卡二国产精品| 精品国产一区久久| 免费成人av在线| 国产免费观看久久| 91国偷自产一区二区开放时间 | 亚洲精品日韩一| 91啦中文在线观看| 人人狠狠综合久久亚洲| 视频精品一区二区| 欧美乱妇一区二区三区不卡视频| 亚洲人成在线播放网站岛国| www.日韩大片| 免费在线观看视频一区| 91精品国产综合久久精品图片 | 欧美另类z0zxhd电影| 一区二区三区四区在线播放| 色综合久久精品| 亚洲va在线va天堂| 欧美一区二区啪啪| 丝袜亚洲另类丝袜在线| 欧美一级在线视频| 欧美日韩国产不卡| 亚洲国产成人av网| 日韩精品一区第一页| 久久精品国产99| 精品久久久久久亚洲综合网| 国产+成+人+亚洲欧洲自线| 国产精品人成在线观看免费| 国产精品色在线| 国产传媒欧美日韩成人| 五月天亚洲婷婷| 精品久久国产97色综合| 日韩欧美一区二区不卡| 欧美伦理电影网| 精品sm在线观看| 欧美草草影院在线视频| 99riav久久精品riav| 成人伦理片在线| 91精品办公室少妇高潮对白| 成人听书哪个软件好| 亚洲黄色尤物视频| 欧美国产禁国产网站cc| av高清久久久| 91极品视觉盛宴| 日本道色综合久久| 亚洲老司机在线| 国产精品久久久久久亚洲毛片| 日本视频一区二区| 亚洲国产美国国产综合一区二区| 国产精品少妇自拍| 一区精品在线播放| 国产精品动漫网站| 欧美日韩电影在线| 日本sm残虐另类| 久久婷婷成人综合色| 中文字幕一区二区日韩精品绯色| 亚洲一线二线三线久久久| 男女男精品视频| 久久久美女毛片| 亚洲一区二区视频| 国产精品不卡在线| 欧美在线一区二区| 亚洲电影在线播放| 久久久精品tv| 色婷婷久久久久swag精品| 最新不卡av在线| 中文字幕一区av| 国产亚洲欧美日韩俺去了| 欧美卡1卡2卡| 在线播放一区二区三区| 色拍拍在线精品视频8848|