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

opencv+python實(shí)現(xiàn)圖像矯正

 更新時(shí)間:2022年08月01日 09:44:41   作者:椰樹林YSL  
這篇文章主要為大家詳細(xì)介紹了opencv+python實(shí)現(xiàn)圖像矯正,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了opencv+python實(shí)現(xiàn)圖像矯正的具體代碼,供大家參考,具體內(nèi)容如下

需求:將斜著拍攝的文本圖像進(jìn)行矯正

python代碼

import numpy as np
import cv2 as cv


def shape_correction(img):
? ? (height, width) = img.shape[:2]
? ? print(img.shape)

? ? img_gau = cv.GaussianBlur(img, (5, 5), 0)
? ? canny = cv.Canny(img_gau, 60, 200)
? ? # cv.imshow("g-canny", canny)
? ??
? ? kernel = cv.getStructuringElement(cv.MORPH_CROSS, (4,3))?
? ??
? ? dilated = cv.dilate(canny, kernel, iterations=8) ?
? ? # cv.imshow('img_dilated', dilated)

? ? # 尋找輪廓
? ? contours, hierarchy = cv.findContours(dilated, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_NONE)
? ? # print(len(contours), hierarchy, sep='\n')

? ? # 找到最外層面積最大的輪廓

? ? area = 0
? ? # print("area:{}".format(area))

? ? index = 0
? ? for i in range(len(contours)):
? ? ? ? x, y, w, h = cv.boundingRect(contours[i])
? ? ? ? # 排除非文本區(qū)域
? ? ? ? if w < 35 and h < 35:
? ? ? ? ? ? continue
? ? ? ? # 防止矩形區(qū)域過大不精準(zhǔn) ? ?
? ? ? ? if h > 0.99 * height or w > 0.99 * width:
? ? ? ? ? ? continue
? ? ? ? # draw rectangle around contour on original image
? ? ? ? # cv.rectangle(img, (x, y), (x + w, y + h), (255, 0, 255), 2)
? ? ? ? tmpArea = w * h
? ? ? ? if tmpArea >= area:
? ? ? ? ? ? area = tmpArea
? ? ? ? ? ? index = i

? ? # 得到最小外接矩形的(中心(x,y), (寬,高), 旋轉(zhuǎn)角度)
? ? rect = cv.minAreaRect(contours[index])
? ? # 畫出矩形框
? ? # box = cv.boxPoints(rect)
? ? # box = np.int0(box)
? ? # cv.drawContours(img, [box], 0, (0, 0, 255), 2)

? ? # cv.imshow('img', img)
? ? print("rect:{}".format(rect))
? ? angle = rect[-1]
? ? # print(angle)

? ? # 角度大于85度或小于5度不矯正
? ? if angle > 85 or angle < 5:
? ? ? ? angle = 0
? ? elif angle < 45:
? ? ? ? angle = angle - 0
? ? else:
? ? ? ? angle = angle - 90

? ? M = cv.getRotationMatrix2D(rect[0], angle, 1)
? ? rotated = cv.warpAffine(img, M, (width, height), flags=cv.INTER_CUBIC, borderValue=(255, 255, 255))
? ??
? ? cv.imshow('Rotated', rotated)
? ? return rotated


src = cv.imread('/res-normal.png', 0)
rotated = shape_correction(src)
cv.waitKey(0)

算法流程

算法核心思想:

獲取圖像中的文本區(qū)域矩形輪廓,找到其中面積最大的,對(duì)其進(jìn)行最小外接矩形計(jì)算,得到最小外接矩形的旋轉(zhuǎn)角度,再根據(jù)旋轉(zhuǎn)角度進(jìn)行仿射變換。

測(cè)試效果

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python + selenium + crontab實(shí)現(xiàn)每日定時(shí)自動(dòng)打卡功能

    Python + selenium + crontab實(shí)現(xiàn)每日定時(shí)自動(dòng)打卡功能

    這篇文章主要介紹了Python + selenium + crontab實(shí)現(xiàn)每日定時(shí)自動(dòng)打卡功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • python模擬投擲色子并數(shù)據(jù)可視化統(tǒng)計(jì)圖

    python模擬投擲色子并數(shù)據(jù)可視化統(tǒng)計(jì)圖

    這篇文章主要介紹了python模擬投擲色子并數(shù)據(jù)可視化統(tǒng)計(jì)圖,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • python入門教程之識(shí)別驗(yàn)證碼

    python入門教程之識(shí)別驗(yàn)證碼

    這篇文章主要介紹了python中識(shí)別驗(yàn)證碼的相關(guān)資料,這屬于學(xué)習(xí)python的基本入門教程,文中介紹的非常詳細(xì),文末也給出了完整的示例代碼,需要的朋友們可以參考學(xué)習(xí),下面來一起看看吧。
    2017-03-03
  • Python入門篇之條件、循環(huán)

    Python入門篇之條件、循環(huán)

    本文的主要內(nèi)容是 Python 的條件和循環(huán)語句以及與它們相關(guān)的部分. 我們會(huì)深入探討if, while, for以及與他們相搭配的else,elif,break,continue和pass語句.
    2014-10-10
  • python csv實(shí)時(shí)一條一條插入且表頭不重復(fù)問題

    python csv實(shí)時(shí)一條一條插入且表頭不重復(fù)問題

    這篇文章主要介紹了python csv實(shí)時(shí)一條一條插入且表頭不重復(fù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • pyenv與virtualenv安裝實(shí)現(xiàn)python多版本多項(xiàng)目管理

    pyenv與virtualenv安裝實(shí)現(xiàn)python多版本多項(xiàng)目管理

    這篇文章主要介紹了pyenv與virtualenv安裝實(shí)現(xiàn)python多版本多項(xiàng)目管理過程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python實(shí)現(xiàn)隨機(jī)游走的詳細(xì)解釋

    Python實(shí)現(xiàn)隨機(jī)游走的詳細(xì)解釋

    這篇文章主要介紹了Python實(shí)現(xiàn)隨機(jī)游走的詳細(xì)解釋,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python操作XML文件的使用指南

    Python操作XML文件的使用指南

    我們經(jīng)常需要解析用不同語言編寫的數(shù)據(jù),Python?提供了許多第三方庫來解析或拆分用其他語言編寫的數(shù)據(jù),今天我們來學(xué)習(xí)下?Python?XML?解析器的相關(guān)功能
    2022-09-09
  • Django學(xué)習(xí)之文件上傳與下載

    Django學(xué)習(xí)之文件上傳與下載

    這篇文章主要為大家詳細(xì)介紹了Django學(xué)習(xí)之文件上傳與下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • python正則中最短匹配實(shí)現(xiàn)代碼

    python正則中最短匹配實(shí)現(xiàn)代碼

    這篇文章主要介紹了python正則中最短匹配實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2018-01-01

最新評(píng)論