资源简介
该代码为基于python+opencv的目标图像区域自动提取,即利用python +opencv检测图像中的长方形画布或纸张并提取图像内容,经过测试,该算法代码能有效解决基本问题。亲测好用,大家快来下载吧,挺不错的一个资源哦!!
代码片段和文件信息
#coding:utf-8
import cv2
import numpy as np
import math
srcWidth = 0
srcHeight = 0
maxWidth = 1024
maxHeight = 600
class Config:
def __init__(self):
pass
src = “IMG_9571.jpg“
min_area = 100000
min_contours = 8
threshold_thresh = 50
epsilon_start = 50
epsilon_step = 10
class HoughPoints:
def __init__(selfrho=0theta=0):
self.rhos = [rho]
self.thetas = [theta]
‘‘‘
@func 根据HoughLines转换出直线点
@param rho 距离
@param theta 角度
‘‘‘
def rt_to_point(img rho theta):
#垂直直线
if (theta < (np.pi/4. )) or (theta > (3.*np.pi/4.0)):
#该直线与第一行的交点
pt1 = (int(rho/np.cos(theta))0)
#该直线与最后一行的焦点
pt2 = (int((rho-img.shape[0]*np.sin(theta))/np.cos(theta))img.shape[0])
return pt1 pt2
else:
#水平直线 该直线与第一列的交点
pt1 = (0int(rho/np.sin(theta)))
#该直线与最后一列的交点
pt2 = (img.shape[1] int((rho-img.shape[1]*np.cos(theta))/np.sin(theta)))
return pt1 pt2
‘‘‘
@return [top-left top-right bottom-right bottom-left]
‘‘‘
def order_points(pts):
# initialzie a list of coordinates that will be ordered
# such that the first entry in the list is the top-left
# the second entry is the top-right the third is the
# bottom-right and the fourth is the bottom-left
rect = np.zeros((4 2) dtype=“float32“)
# the top-left point will have the smallest sum whereas
# the bottom-right point will have the largest sum
s = pts.sum(axis=1)
rect[0] = pts[np.argmin(s)]
rect[2] = pts[np.argmax(s)]
# now compute the difference between the points the
# top-right point will have the smallest difference
# whereas the bottom-left will have the largest difference
diff = np.diff(pts axis=1)
rect[1] = pts[np.argmin(diff)]
rect[3] = pts[np.argmax(diff)]
# return the ordered coordinates
return rect
def point_distance(ab):
return int(np.sqrt(np.sum(np.square(a - b))))
‘‘‘
@func 计算两条直线的交点
‘‘‘
def line_intersection(line1 line2):
xdiff = (line1[0][0] - line1[1][0] line2[0][0] - line2[1][0])
ydiff = (line1[0][1] - line1[1][1] line2[0][1] - line2[1][1])
def det(a b):
return a[0] * b[1] - a[1] * b[0]
div = det(xdiff ydiff)
if div == 0:
raise Exception(‘lines do not intersect‘)
d = (det(*line1) det(*line2))
x = det(d xdiff) / div
y = det(d ydiff) / div
return x y
‘‘‘
@func 迪卡尔转极坐标
‘‘‘
def cart_to_polor(x1 y1 x2 y2):
diff = float(abs(x1-x2)) / abs(y1-y2)
theta = math.atan(diff)
#print(“theta=%f diff=%f %f %f“%(theta diff abs(x1-x2) abs(y1-y2)))
rho = math.sin(theta)*(y1 - (x1/math.tan(theta)) )
return rho theta
image = cv2.imread(Config.src)
gray = cv2.cvtColor(image cv2.COLOR_BGR2GRAY)
srcWidth srcHeight channels = image.shape
print(srcWidth srcHeight)
# 中值平滑,
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6929 2018-08-12 13:53 Opencv_python\Opencv2_python.py
文件 836761 2018-08-12 13:46 Opencv_python\图像处理要求_20180730更新.pdf
文件 1649843 2018-08-11 21:12 Opencv_python\未通过图片\IMG_9380.JPG
文件 2241514 2018-08-11 21:14 Opencv_python\未通过图片\IMG_9382.JPG
文件 2165282 2018-08-11 21:14 Opencv_python\未通过图片\IMG_9385.JPG
文件 1865957 2018-08-11 21:13 Opencv_python\未通过图片\IMG_9397.JPG
文件 1717046 2018-08-11 21:12 Opencv_python\测试通过的图片\5.JPG
文件 1664460 2018-08-11 21:12 Opencv_python\测试通过的图片\IMG_9378.JPG
文件 1697926 2018-08-11 21:12 Opencv_python\测试通过的图片\IMG_9379.JPG
文件 1682140 2018-08-11 21:12 Opencv_python\测试通过的图片\IMG_9399.JPG
文件 1710356 2018-08-11 21:12 Opencv_python\测试通过的图片\IMG_9429.JPG
文件 1714546 2018-08-11 21:12 Opencv_python\测试通过的图片\IMG_9432.JPG
文件 1642283 2018-08-11 21:12 Opencv_python\测试通过的图片\IMG_9433.JPG
文件 1678062 2018-08-11 21:12 Opencv_python\测试通过的图片\IMG_9435.JPG
文件 1717046 2018-08-11 21:12 Opencv_python\测试通过的图片\IMG_9436.JPG
文件 1840351 2018-08-11 21:13 Opencv_python\测试通过的图片\IMG_9437.JPG
文件 1768708 2018-08-11 21:13 Opencv_python\测试通过的图片\IMG_9438.JPG
文件 1908407 2018-08-11 21:14 Opencv_python\测试通过的图片\IMG_9439.JPG
文件 1793371 2018-08-11 21:13 Opencv_python\测试通过的图片\IMG_9440.JPG
文件 2176392 2018-08-11 21:14 Opencv_python\测试通过的图片\IMG_9468.JPG
文件 2183829 2018-08-11 21:14 Opencv_python\测试通过的图片\IMG_9469.JPG
文件 2144229 2018-08-11 21:14 Opencv_python\测试通过的图片\IMG_9471.JPG
文件 3957927 2018-08-12 13:35 Opencv_python\算法测试矫正图片\transfer115.png
文件 2019301 2018-08-12 13:40 Opencv_python\算法测试矫正图片\transfer26.png
文件 3569918 2018-08-12 12:43 Opencv_python\算法测试矫正图片\transfer3.png
文件 2260877 2018-08-12 12:49 Opencv_python\算法测试矫正图片\transfer338.png
文件 3179354 2018-08-12 13:21 Opencv_python\算法测试矫正图片\transfer35.png
文件 2625796 2018-08-12 12:40 Opencv_python\算法测试矫正图片\transfer36.png
文件 3081279 2018-08-12 12:55 Opencv_python\算法测试矫正图片\transfer373.png
文件 4195687 2018-08-12 13:17 Opencv_python\算法测试矫正图片\transfer3909.png
............此处省略16个文件信息
相关资源
- 基于Python的人工智能美颜系统
- 麻瓜编程 实用主义学Python2018
- jieba分词,连接数据库,分析数据库中
- 传智播客python人工智能项目黑马程序
- 机器学习升级版第七期 xiaoxiang zoub
- 基于python的微博热点话题舆情聚类分
- 人工智能作业pacman吃豆人python源代码
- Python深度学习部分
- 是AI就躲个飞机-纯Python实现人工智能
- LSTM股价预测(python).zip
- python入门到精通某智付费课程超级完
- Python人工智能AI深度学习全套课程.t
- python人脸识别、人体识别、耳朵眼睛
- 朴素贝叶斯过滤垃圾邮件源码及数据
- python3零基础学习视频共20周带源码
- python svm 源码
- A*算法解决十五数码问题Python程序、报
- Python→Transorflow猫狗识别完整代码,附
- 复旦大学人工智能N-Queens答案
- 用Python实现一个动物识别专家系统–
- Programming Python-Python编程第4版-上下册
- 尚硅谷2018年Python视频
- Python+OpenCv实现AI人脸识别身份认证系
- 《PyTorch生成对抗网络编程》思维导图
- fire_finder.rar
- 决策树DecisionTree项目python代码实现
- reinforcement-learning-an-introduction-master
- 人工智能资料集_140G_百度盘
- Python 3.7 标准库内置库手册(CHM格式,
- 2018年15期Python视频教程传智播客itca
评论
共有 条评论