xv

图像分割_KMeans 实现

≡放荡痞女 提交于 2020-03-02 14:20:44
图像分割是一种图像处理方法, 它是指将一副图像分割成若干个互不相交的区域; 图像分割实质就是像素的聚类; 图像分割可以分为两类:基于边缘的分割,基于区域的分割, 聚类就是基于区域的分割; KMeans 实现图像分割 KMeans 分割图像实质上是对像素的聚类,每个类有个代表像素,把原始像素替换成该类别对应的代表像素即完成分割; 每个类别对应一个分割区域,每个区域是个单通道图; 示例 import numpy as np from sklearn.cluster import KMeans from PIL import Image ### 原始像素 img = Image.open('e://55.jpg') print(img.size) np_img = np.array(img) print(np_img) print(np_img.shape) ### 聚类的数据预处理 np_flatten = np_img.flatten() ### 拉成一维 np_flatten = np_flatten[:, np.newaxis] ### kmeans 要求 二维 np_flatten_std = np_flatten / 256. ### 归一化 # print(np_flatten_std) ### 聚类 所有像素点 km = KMeans(n_clusters=3,

GPS时间序列分析(二)matlab语言分析

て烟熏妆下的殇ゞ 提交于 2020-02-12 12:25:03
GPS时间序列分析(二) matlab语言分析 1.简单的GPS时间序列 load E:\RMTE.txt yuanshi_dataWeidu = RMTE ( :,4 ) ';%将原始坐标赋值 yuanshi_dataJingdu=RMTE(:,3)' ; yuanshi_dataGaochen = RMTE ( :,5 ) ' ; yuanshi_data = [ yuanshi_dataWeidu ; yuanshi_dataJingdu ; yuanshi_dataGaochen ] ; [ col,raw ] = size ( yuanshi_data ) ; llh_Z_xyz = llh2xyz ( yuanshi_data ) ; %经纬度高程转换成xyz平面坐标,输出格式为:3行n列 %第一次转换后的xyz坐标减去第一次观测的xyz坐标,组成xyz变化量矩阵 llh_Z_xyz_X = llh_Z_xyz ( 1,: ) -mean ( llh_Z_xyz ( 1,: )) ; llh_Z_xyz_Y = llh_Z_xyz ( 2,: ) -mean ( llh_Z_xyz ( 2,: )) ; llh_Z_xyz_Z = llh_Z_xyz ( 3,: ) -mean ( llh_Z_xyz ( 3,: )) ; llh_Z_xyz_XYZ = [ llh_Z

弹力球案例

泄露秘密 提交于 2020-01-03 12:40:33
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>弹力球案例</title> <style> *{ margin: 0px; padding: 0px; } #imgid{ width: 128px; height: 128px; position: absolute; top: 0px; left: 0px } #imgid img{ width: 128px; height: 128px; } </style> </head> <body> <div id="imgid"> <img src="img/Basketball.png" alt="#"> </div> <script> imgdemo=document.getElementById('imgid'); screenHeight=document.documentElement.clientHeight;//可视区域的高 screenWidth=document.documentElement.clientWidth;//可视区域的宽 imgheight=128;//图片的高 imgWidth=128;//图片的宽 Height=screenHeight-imgheight;//差值 Width=screenWidth

What does scipy.interpolate.InterpolatedUnivariateSpline.get_coeffs return?

匿名 (未验证) 提交于 2019-12-03 03:12:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I tried the following: spline= interpolate.InterpolatedUnivariateSpline(X, Y, k=3) coefs= spline.get_coeffs() With five values in each of X and Y , I ended up with coefs also having five values. Given that five data points implies four spline sections, and that a cubic polynomial has four coefficients, I would have expected to get four times four= 16 coefficients. Does anyone know how to interpret the values that are returned by the get_coeffs method? Is there any place where this is documented? 回答1: These are not the coefficients of x, x**2

Surface Curvature Matlab equivalent in Python

匿名 (未验证) 提交于 2019-12-03 02:16:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I was trying to calculate the curvature of a surface given by array of points (x,y,z). Initially I was trying to fit a polynomial equation z=a + bx + cx^2 + dy + exy + fy^2) and then calculate the gaussian curvature $ K = \frac{F_{xx}\cdot F_{yy}-{F_{xy}}^2}{(1+{F_x}^2+{F_y}^2)^2} $ However the problem is fitting if the surface is complex. I found this Matlab code to numerically calculate curvature. I wonder how to do the same in Python. function [K,H,Pmax,Pmin] = surfature(X,Y,Z), % SURFATURE - COMPUTE GAUSSIAN AND MEAN CURVATURES OF A

判断一个点是否在多边形内部

匿名 (未验证) 提交于 2019-12-03 00:15:02
最近在处理图片时遇到一个问题,如何判断某个点是否落在一个多边形(比如四边形)区域里面? 在网上找到一个比较简洁明了的方法,不过后来运行程序时发现计算量比较大(我是对图片的每个像素都进行一次判断),有更好的方法还望指点指点~ 这个方法是通过向量的叉乘来判断的:点如果落在顺时针(或逆时针)向量同一边,则点在多边形内。如下图,以顺时针为例,分别计算向量 AB 与 AO 、 BC 与 BO 、 CD 与 CO 、 DA 与 DO 的叉乘,所得结果的 z 轴分量同号则说明点 O 在四边形 ABCD 内部。 附上 Python 实现的代码: 1 # 判断点是否在四边形内部,在四边形内部返回1,否则返回0 2 # x、y为点的坐标,xv为四边形的x坐标构成的向量,yv为四边形的y坐标构成的向量 3 def inpolygon(x, y, xv, yv): 4 z1 = (xv[1] - xv[0]) * (y - yv[0]) - (x - xv[0]) * (yv[1] - yv[0]) 5 z2 = (xv[2] - xv[1]) * (y - yv[1]) - (x - xv[1]) * (yv[2] - yv[1]) 6 z3 = (xv[3] - xv[2]) * (y - yv[2]) - (x - xv[2]) * (yv[3] - yv[2]) 7 z4 = (xv[0] -

判断一个点是否在多边形内部

雨燕双飞 提交于 2019-12-02 22:48:15
最近在处理图片时遇到一个问题,如何判断某个点是否落在一个多边形(比如四边形)区域里面? 在网上找到一个比较简洁明了的方法,不过后来运行程序时发现计算量比较大(我是对图片的每个像素都进行一次判断),有更好的方法还望指点指点~ 这个方法是通过向量的叉乘来判断的:点如果落在顺时针(或逆时针)向量同一边,则点在多边形内。如下图,以顺时针为例,分别计算向量 AB 与 AO 、 BC 与 BO 、 CD 与 CO 、 DA 与 DO 的叉乘,所得结果的 z 轴分量同号则说明点 O 在四边形 ABCD 内部。 附上 Python 实现的代码: 1 # 判断点是否在四边形内部,在四边形内部返回1,否则返回0 2 # x、y为点的坐标,xv为四边形的x坐标构成的向量,yv为四边形的y坐标构成的向量 3 def inpolygon(x, y, xv, yv): 4 z1 = (xv[1] - xv[0]) * (y - yv[0]) - (x - xv[0]) * (yv[1] - yv[0]) 5 z2 = (xv[2] - xv[1]) * (y - yv[1]) - (x - xv[1]) * (yv[2] - yv[1]) 6 z3 = (xv[3] - xv[2]) * (y - yv[2]) - (x - xv[2]) * (yv[3] - yv[2]) 7 z4 = (xv[0] -

带花树模板

梦想的初衷 提交于 2019-11-28 15:07:16
带花树模板,用来解决一般图的最大匹配。(可以是带权图) #include<bits/stdc++.h> using namespace std; struct Blossom_algorithm { typedef long long s64; const static int INF = 2147483647; const static int MaxN = 400; const static int MaxM = 79800; template <class T> inline void tension(T &a, const T &b) { if (b < a) a = b; } template <class T> inline void relax(T &a, const T &b) { if (b > a) a = b; } template <class T> inline int size(const T &a) { return (int)a.size(); } const static int MaxNX = MaxN + MaxN; struct edge { int v, u, w; edge(){} edge(const int &_v, const int &_u, const int &_w) : v(_v), u(_u), w(_w){} };