circles

opencv python:直线检测 与 圆检测

风流意气都作罢 提交于 2020-01-31 01:24:45
霍夫直线变换介绍 霍夫圆检测 现实中: example import cv2 as cv import numpy as np # 关于霍夫变换的相关知识可以看看这个博客:https://blog.csdn.net/kbccs/article/details/79641887 def line_detection(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) edges = cv.Canny(gray, 50, 150, apertureSize=3) # cv2.HoughLines()返回值就是(ρ,θ)。ρ 的单位是像素,θ 的单位是弧度。 # 这个函数的第一个参数是一个二值化图像,所以在进行霍夫变换之前要首先进行二值化,或者进行 Canny 边缘检测。 # 第二和第三个值分别代表 ρ 和 θ 的精确度。第四个参数是阈值,只有累加其中的值高于阈值时才被认为是一条直线, # 也可以把它看成能 检测到的直线的最短长度(以像素点为单位)。 lines = cv.HoughLines(edges, 1, np.pi/180, 200) for rho, theta in lines[0]: a = np.cos(theta) b = np.sin(theta) x0 = a * rho y0 = b * rho x1 =

作业三

早过忘川 提交于 2020-01-24 02:04:29
代码本色实例 一、随机性 我选择去在屏幕中,随机生成许多圆圈,且不让他们有重合的部分。以下为全部代码 // https://www.youtube.com/watch?v=XATr_jdh-44 let circles = [ ] ; const padding = 0.1 ; let protection = 0 ; function setup ( ) { createCanvas ( 600 , 400 ) ; background ( 200 ) ; //判断 while ( circles . length < 10000 ) { let circle = { x : random ( width ) , y : random ( height ) , r : random ( 10 , 30 ) let overlapping = false ; for ( let j = 0 ; j < circles . length ; j ++ ) { const other = circles [ j ] ; const d = dist ( circle . x , circle . y , other . x , other . y ) ; if ( d < circle . r + other . r + padding ) { overlapping = true ;

图像变换之霍夫变换

帅比萌擦擦* 提交于 2019-12-05 20:37:33
第一个霍夫直线变换 Houghlines() ////HoughlinesP函数的使用 #include <opencv2/opencv.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace cv; using namespace std; int main() { VideoCapture capture(0 ); while (1) { //【1】载入原始图和Mat变量定义 Mat srcImage; capture >> srcImage; Mat midImage, dstImage;//临时变量和目标图的定义 //【2】进行边缘检测和转化为灰度图 Canny(srcImage, midImage, 50, 200, 3);//进行一此canny边缘检测 cvtColor(midImage, dstImage, COLOR_GRAY2BGR);//转化边缘检测后的图为灰度图 //【3】进行霍夫线变换 vector<Vec4i> lines;//定义一个矢量结构lines用于存放得到的线段矢量集合 HoughLinesP(midImage, lines, 1, CV_PI / 180, 80, 50, 10); //【4】依次在图中绘制出每条线段 for (size_t i = 0; i < lines

微信小程序map地图画圆圈效果

匿名 (未验证) 提交于 2019-12-02 23:34:01
// map.js var EARTH_RADIUS = 6378.137; //地球半径 function rad(d) { return d * Math.PI / 180.0; } function getDistance(lng1, lat1, lng2, lat2) { var radLat1 = rad(lat1); var radLat2 = rad(lat2); var a = radLat1 - radLat2; var b = rad(lng1) - rad(lng2); var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2))); s = s * EARTH_RADIUS; s = Math.round(s * 10000) / 10000; return s;//返回数值单位:公里 } Page({ data: { markers:[ { iconPath: '/resources/others.png', id: 0, latitude: 23.099994, longitude: 113.324520, width: 50, height: 50 }