opencv
小树苗m
硕士研究生,主要研究方向人工智能、数据处理。
展开
-
十、OpenCV对一张图像做卷积运算
def conv_only(): ''' 对输入的单张图像做卷积运算 ''' def ImgConvolve(image_array, kernel): image_arr = image_array.copy() # 灰度图像矩阵的维度 img_dim1, img_dim2 = image_arr.shape # 过滤器的维度 k_dim1, k_dim2 = kernel.shape原创 2021-01-02 23:45:27 · 441 阅读 · 0 评论 -
九、OpenCV霍夫校正-python
import osimport cv2import mathimport randomimport numpy as npfrom scipy import misc, ndimageimg = cv2.imread('D:\\images\\resultno\\d05.jpg')gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)edges = cv2.Canny(gray,50,150,apertureSize = 3)#霍夫变换lines = cv原创 2021-01-02 23:42:28 · 150 阅读 · 0 评论 -
八、Opencv牛刀小试-python实现(批量访问图像、改变图像大小、鼠标点击图像打印像素值)
一: 批量访问图像“”"时间:2019.7.18 12:40:43作者:小宇“”"import os.pathimport globimport cv2def maxinandout():‘’‘批量访问-处理-文件并按原文件名存储在指定的文件夹中’’’outdir=r"D:\images\asd" #要存放的文件路径for jpgfile in glob.iglob(r’D:\images\as\*.jpg’):#读取的文件路径(遍历所有后缀为.jpg的所有文件)img=cv2.im原创 2021-01-01 14:56:39 · 209 阅读 · 0 评论 -
七、opencv中外接计算-python实现(面积、周长、外接矩形、外接圆、外接形状匹配)
一、cv2.boundingRect(img)img------二值图;返回四个值,分别是x,y,w,h;x,y是矩阵左上点的坐标,w,h是矩阵的宽和高二、cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2)第一个参数:img是原图第二个参数:(x,y)是矩阵的左上点坐标第三个参数:(x+w,y+h)是矩阵的右下点坐标第四个参数:(0,255,0)是画线对应的rgb颜色第五个参数:2是所画的线的宽度三、其他cv2.cvtcolor(im原创 2021-01-01 14:47:57 · 4473 阅读 · 0 评论 -
六、opencv轮廓查找及绘制-python实现(轮廓查找、轮廓绘制、举例)
一.查找轮廓cv2.findContours()三个输入参数:输入图像(二值图像),轮廓检索方式,轮廓近似方法(1).轮廓检索方式cv2.RETR_EXTERNAL 只检测外轮廓cv2.RETR_LIST 检测的轮廓不建立等级关系cv2.RETR_CCOMP 建立两个等级的轮廓,上面一层为外边界,里面一层为内孔的边界信息cv2.RETR_TREE 建立一个等级树结构的轮廓(2)轮廓近似办法cv2.CHAIN_APPROX_NONE 存储所有边界点cv2.CHAIN_APPROX_SIMP转载 2021-01-01 14:40:26 · 533 阅读 · 1 评论 -
五、opencv图像二值化和形态学操作-python实现(固定阈值、自适应二值化;图像辅食、膨胀、闭运算、开运算)
一:图像二值化(1)固定阈值二值化ret, dst = cv2.threshold(src, thresh, maxval, type)src: 输入图,只能输入单通道图像,通常来说为灰度图dst: 输出图thresh: 阈值maxval: 当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值type:二值化操作的类型,包含以下5种类型: cv2.THRESH_BINARY; cv2.THRESH_BINARY_INV; cv2.THRESH_TRUNC; cv2.THRESH_原创 2021-01-01 14:34:19 · 635 阅读 · 0 评论 -
四、opencv常用边缘检测算子-python实现(sobel算子、Scharr算子、拉普拉斯算子、canny算子)
import cv2import numpy as npimg=cv2.imread(“D:/images/ss.jpg”,0)一、sobel算子:‘’’Sobel_x_or_y = cv2.Sobel(src, ddepth, dx, dy, dst, ksize, scale, delta, borderType)src-传入的图像;ddepth-图像深度;dx和dy-求导阶数ksize-卷积核大小‘’’def sobel(img):x=cv2.Sobel(img,cv2.CV_16原创 2021-01-01 14:25:04 · 1018 阅读 · 0 评论 -
三、opencv滤波篇-python实现(均值滤波、方框滤波、高斯滤波、中值滤波)
均值滤波、方框滤波、高斯滤波、中值滤波-- coding: utf-8 --import cv2import numpy as npfrom matplotlib import pyplot as pltimg1=cv2.imread(“D:/images/take.jpg”)img2=cv2.imread(“D:/images/qudou.jpg”)均值、方框、高斯和中值滤波,其中,中值滤波不用转换def midiumblur(img):source = cv2.cvtColor(img原创 2021-01-01 14:17:48 · 691 阅读 · 0 评论 -
二、opencv中图像的几何变换-python版本(平移、缩放、旋转、仿射、透射)
1、图形的平移import cv2import numpy as np通过numpy来构造这个矩阵,并将其传给仿射函数cv2.warpAffine( )img = cv2.imread(‘4.jpg’)#构造移动矩阵HH = np.float32([[1, 0, 50], [0, 1, 25]])rows, cols = img.shape[:2]print(img.shape)print(rows, cols)res = cv2.warpAffine(img, H, (cols, ro原创 2021-01-01 14:08:21 · 557 阅读 · 0 评论 -
一、opencv基础-python版本(读取、复制、缩放、显示、保存、像素访问、通道分离与合并、图像上绘制文字、直线、矩形、圆、多边形)
一、图像的读取、复制、显示、保存import cv2 #导入Opencv库1、读取图像img = cv2.imread(“D:\cat.jpg”) #读取图片2、复制图像img1=img.copy()3、保存图像cv2.imwrite(‘rose_copy.jpg’, img1)#第一个参数保存图像的地址以及文件的名字,第二个参数所要保存 的图像数组。4、显示图像cv2.namedWindow(‘Image’,cv2_WINDOW_NORMAL) #创建窗口cv原创 2021-01-01 13:51:22 · 879 阅读 · 0 评论