opencv如何把一个矩阵不同列分离开_学习OPEN_CV

OpenCv中文论坛精华地址

http://www.opencv.org.cn/index.php/User:Ollydbg23

http://sivp.sourceforge.net/(sivp)

一、基础操作

1. 数据类型 数据结构了解

图像相关:cvArr  cvMat IplImage

数据数组的维数, 与数据的通道数 见P46 (76)

2. 常见的矩阵操作熟悉

3. 数据的保存和读取

4. 图像的加载和显示

5. 视频的操作

6. 内存与序列

a. 内存存储器

CvMemStorage

双向链表  动态对象(cvSeq  cvSet)的内存

cvCreateMemStorage

cvReleaseMemStorage

cvClearMemStorage  不返还系统

cvMemStorageAlloc

b. 序列

是内存存储器可以存储的一种对象。 双端队列

CvSeq

方法:

cvCreateSeq

cvClearSeq

cvGetSeqElem

cvCloneSeq cvSeqSlice cvSeqRemoveSlice cvSeqInsertSlice

cvSeqSort

cvSeqSearch

cvSeqInvert

cvSeqPartition

堆栈操作   cvSeqPush cvSeqPushFront  cvSeqPop  cvSeqPopFront  cvSeqPushMulti  cvSeqPopMulti

cvSeqInsert cvSeqRemove

cvSetSeqBlockSize

读出和写入:  CvSeqWriter结构  cvStartWriteSeq  cvStartAppendToSeq  cvEndWriteSeq  cvFlushSeqWriter

CV_WRITE_SEQ_ELEM  CV_WRITE_SEQ_ELEM_VAR

CvSeqReader结构  cvStartReadSeq   cvGetSeqReaderPos   cvSetSeqReaderPos

CV_NEXT_SEQ_ELEM V_PREV_SEQ_ELEM CV_READ_SEQ_ELEM CV_REV_READ_SEQ_ELEM

数组互相转换 cvCvtSeqToArray  cvMakeSeqHeaderForArray

二. 图像的处理

1. 图像的平滑  cvSmooth

主要应用: 去除噪声, 失真,降低图像的分辨率。

主要方法: CV_BLUR   CV_BLUR_NO_SCALE  CV_MEDIAN  CV_GAUSSIAN  CV_BILATERAL

2. 图像形态学 cvErode  cvDilate  cvMorphologyEx

主要作用: 消除噪声  分割等

相关方法

a. 腐蚀    消除噪声斑点

b. 膨胀    连通被噪声、阴影分割的区域

c. 开运算  先腐蚀后膨胀

d. 闭运算  先膨胀后腐蚀

e. 形态梯度

f. "礼貌"

g. "黑帽"

3. 漫水填充算法  cvFloodFill

作用: 标记或者分离图像的一部分。 从输入图像获取掩码区域。

原理:  把邻近区域所有相似点填充为种子点同样的颜色。

4. 尺寸调整  cvResize

ROI的影响

插值方法的选择

5. 图像金字塔  cvPyrDown  cvPyrUp  cvPyrSegmentation

简介:源于同一原始图像的连续降采样获得的一个图像的集合。

方法:高斯图像金字塔  拉普拉斯图像金字塔

应用:图像分割

6. 阀值化 cvThreshold  cvAdaptiveThreshold

一般阀值化

自适应阀值化: 针对有很强照明或反射梯度的图像,需要根据梯度进行阀值化

三、图像的变换

1. 卷积 cvFilter2D

数学公式: z(t)=f(t)*g(t)= ∫f(m)g(t-m)dm

h(x)=(f*g)(x)

描述:变换的基础

卷积核: 参考点  核支撑

计算方法:图像参考点 = Σ 核点*对应图像点

卷积边界:  cvCopyMakeBorder

2. 梯度和Sobel导数  cvSobel

导数的计算:最重要且是最基本的卷积

注意: Sobel导数并不是真正的导数,它是离散空间的拟合。

用大核可以对导数有更好的逼近。

scharr滤波器: sobel算子小核时精度低,应使用scharr滤波器。

3. 拉普拉斯变换  cvLaplace

描述: 二阶导数  二阶Sobel导数

应用:  检测"团块"  边缘检测

4. Canny算子 cvCanny

描述: 轮廓拼装

应用:  边缘检测

5. 霍夫变换

应用: 在图像中寻找直线、圆等其他简单图形的方法。

霍夫线变换 cvHoughLines2

霍夫圆变换 (霍夫梯度法) cvHoughCircles

6. 重映射 cvRemap

7. 拉伸 收缩 扭曲 旋转

仿射变换

稠密仿射变换: cvWarpAffine

计算变换矩阵: cvGetAffineTransform  cv2DRotationMatrix

稀疏仿射变换: cvTransform

应用于一系列孤立点的映射

透射变换:

密集透射变换:  cvWarpPerspective

计算变换矩阵: cvGetPerspectiveTransform

稀疏透射变换:  cvPerspectiveTransform

8. cvCartToPolar cvPolarToCart

笛卡尔坐标系和极坐标系的转换

9. LogPolar

对数极坐标变换  cvLogPolar

cvDFT函数(实现了FFT算法)

cvGetOptimalDFTSize  cvGetSubRect

cvMulSpectrums

11. 离散余弦变换 DCT

实数的处理  cvDCT

12. 积分图像  cvIntegral

作用:子区域的快速求和

应用:人脸识别

13. 距离变换  cvDistTransform

输入为边缘检测的图像

14. 直方图均衡化 cvEqualizeHist

应用:图像亮度分布比较集中, 将亮度分布范围拉宽

四、直方图

直方图:信息的一种表达方式,数据分布的统计图。

对边缘 色彩  角  亮度等特征的统计

bin:区间 即竖条

1. 数据结构

CvHistogram

2. 操作函数

cvCreateHist

cvQueryHistValue_1D

cvGetHistValue_1D

cvNormalizeHist

cvThreshHist

cvCopyHist

cvGetMinMaxHistValue

cvCalcHist

cvCompareHist  (五种比较方法: CV_COMP_CORREL CV_COMP_CHISQR CV_COMP_INTERSECT CV_COMP_BHATTACHARYYA EMD)

寻找相关和匹配

3. 应用

HSV: H(色调)    S(饱和度)     V(亮度值)

a. EMD 方法  利用直方图的距离测量来代替直方图的匹配策略

光线的变化引起图像颜色值的变化

cvCalcEMD2

b. 反向投影(back projection)

寻找目标

cvCalcBackProject()计算一个像素是否是一个已知目标的一部分

cvCalcBackProjectPatch()计算一块区域是否包含已知的目标  (区域检测器  目标检测器)

得到目标图像的概率值, 用cvMinMaxLoc()确定目标在图像的位置

c. 模板匹配 cvMatchTemplate

不是基于直方图。通过在输入图像上滑动图像快对实际的图像快和输入图像进行匹配。

cvNormalize

五、轮廓 cvFindContours()

根据边缘像素(canny)组装成轮廓。

用序列的数据结构表示轮廓信息。

处理的图像: cvCanny()输出图像或者 cvThreshold() cvAdaptiveThreshold()的输出图像

重要概念:轮廓树

外轮廓(c)  内轮廓(h  hole)

1. cvFindContours()

输入图像 8通道 二值化的图像

2. 方法

cvFindContours

cvStartFindContours

cvFindNextContour

cvSubstituteContour

cvEndFindContour

cvApproxChains

3. 绘制轮廓

cvDrawContours

4. 轮廓的识别和处理

简化或拟合轮廓,匹配轮廓到模板

a. 多边形逼近

cvApproxPoly

cvFindDominantPoints 寻找关键点

b. 特性概括

长度  其他度量  轮廓矩

长度 cvContourPerimeter() cvArcLength

面积 cvContourArea

边界框 cvBoundingRect  cvMinAreaRect2

cvMinEnclosingCircle 最小包围圆

cvFitEllipse2  最佳拟合圆

c. 几何  几个实用函数

cvMaxRect

cvBoxPoints

cvPointSeqFromMat

cvPointPolygonTest

5. 轮廓匹配

a. 矩

轮廓矩:比较2个轮廓最简单的方式

struct CvMoments

cvContoursMoments  输入的是轮廓(CvSeq表示)

cvMoments          输入的是图像

cvGetCentralMoment

cvGetNormalizedCentralMoment

cvGetHuMoments     Hu矩是中心矩和归一化矩的线性组合

b. cvMatchShapes 用Hu矩匹配

c. 等级匹配

轮廓树:此处的概念和之前的不同。

轮廓树的创建过程。

比较2个树的相似度。

cvCreateContourTree  创建轮廓树

cvContourFromContourTree

cvMatchContourTrees  比较

六、图像的局部和分割

如何从图像中将目标或部分目标分割出来。

1. 背景减除

快速背景建模方法:光照变化不大的室内

codebook方法:    室内外环境,周期性运动 灯光缓慢变化(速度较慢)

背景和前景

a. 背景减除缺点

假设:所有像素是独立的。

亮度的变化

b. 场景建模

前景与背景的转化

新的前景-旧的前景-背景

c. 像素片段

像素在一段时间内变化。

对这种波动建立模型。

cvInitLineIterator

CV_NEXT_LINE_POINT()

d. 帧差

最简单的背景减除方法就是用一帧减去另一帧,将差别作为前景。

cvAbsDiff

e. 平均背景法

适用于:背景场景不包含运动的部分,要求光线保持不变。

cvAcc() cvAbsDiff() cvInRange()

其他类似cvAcc()的累积函数:cvRunningAvg  cvSquareAcc  cvMultiplyAcc

方法: 得到每个像素或一组像素的时间序列模型。(消耗大量内存)

codebook(编码本): 一个像素现在的观测值和先前的观测值的比较。

RGB空间

YUV空间、

HSV空间(与亮度相关)  // hue色度,saturation纯度,value亮度

codebook算法(注意 它不能处理不同模式的光)

f.1 结构

struct code_book

struct ce

f.2 方法

update_codebook:      定时调用,训练和学习  (创建codebook模型)

clear_stale_entries: 调用update_codebook一段时间后,调用这个函数做清除操作 (清除很少使用的码本条目)

background_diff:      使用经验模型在先前的背景中将前景目标的像素分割出来

f.3 codebook算法操作步骤

见P318(348 )

g. 清除前景的连通部分 (学习开运算 闭运算 轮廓 好的例程)

功能强大的在背景中去除噪声的技术

find_connected_components

2. 分水岭算法    cvWatershed

标记图像, 根据标记来分割图像

3. 用Inpainting来修补图像 cvInpaint()

修复图像

4. 均值漂移分割

cvPyrMeanShiftFiltering:   finds the peaks of color distributions over space (从空间考虑)

cvMeanShift (运动跟踪章节): finds the peak of a color-spatial (or other feature) distribution over time(时间考虑)

参考图像金字塔(cvPyrUp, cvPyrDown)

5. Delaunay三角剖分和Voronoi划分

Delaunay三角剖分是表现三维形状的基础, 是连接计算机视觉与计算机图形学的桥梁。

opencv仅实现了二维的Delaunay三角剖分.

二维的Delaunay三角剖分的应用: 运动场景跟踪  目标识别  不同摄像机的场景匹配

七、运动与跟踪

1. 跟踪基础

识别: 矩  颜色直方图

跟踪视觉上重要的关键点,而不是整个物体。

lucas-Kanade Horn-Schunk方法 (稀疏和稠密光流)

建模:

2. 寻找角点  cvGoodFeaturesToTrack

关键点,特征点

一个点在两个正交的方向都有明显的导数。

Harris角点: 角点位于图像二阶导数的自相关矩阵有两个最大特征值的地方。

同时对移动和旋转不变

3. 亚像素角点 cvFindCornerSubPix

精确测量

应用: 标定,跟踪,三维重建

4. 不变特征

SIFT

5. 光流

a. 稀疏光流

a.1 LK算法 cvCalcOpticalFlowLK

感兴趣点的小窗口。

缺点: 点会移出小窗口

a.1.1 原理

3个假设  亮度恒定;时间连续或者运动是"小运动;空间一致

v = - It/Ix

a.1.2 一维光流

前2个假设

(迭代的方法解决假设不十分正确的情况)

a.1.2 二维光流

考虑第3个假设解不定方程

a.2 金字塔LK算法 cvCalcOpticalFlowPyrLK

解决大而不连贯的运动,即不满足小而连贯的假设

b. 稠密光流

b.1 Horm-Schunck

cvCalcOpticalFlowHS

b.2 块匹配方法

cvCalcOpticalFlowBM

6. MEAN-SHIFT  CAM-SHIFT

a. mean-shift  cvMeanShift

通用方法,可以跟踪物体的运动

b. cam-shift cvCamShift

建立在mean-shift之上,跟踪视频中尺寸可能产生变换的目标

窗口可以调整

7. 运动模板

应用: 姿态识别

实心轮廓的获取

建立模板:cvUpdateMotionHistory (需要传入轮廓)

计算梯度:cvCalcMotionGradient

分割:    cvSegmentMotion

8. 预估器

应用:目标跟踪

分两个阶段: 预估阶段  校正阶段

a. Kalman Filter

八、 标定

http://www.vision.caltech.edu/bouguetj/calib_doc/

http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=4603

张正友经典的论文《A Flexible New Technique for Camera Calibration》

针孔模型

透镜的畸变

标定过程: 摄像机几何模型  透镜的畸变模型

单应变换   homograph transform

2件事情: 矫正畸变效应;

根据获得的图像重构三维场景

1. 摄像机模型

针孔模型

主点: 光轴与图像平面的交点

cx, cy: 芯片通常不在光轴上,故引入这2个变量

fx = F * sx  fy = F * sy

x = f*(X/Z)  ---> xs = fx*(X/Z) + cx

a. 基本投影几何

投影变换

q = M*Q

M 为(fx, fy, cx, cy)表示的摄像机内参数矩阵

Q: 物理点

q: 图像平面的点(用投影变换的n+1维坐标表示)

cvConvertPointsHomogenious: 齐次坐标处理函数

b. 透镜畸变

针孔成像光线少,且成像慢,故使用透镜,但是会引入畸变。

径向畸变:来自透镜的形状。

远离中心,畸变越厉害,便宜的网络摄像机非常厉害。

xc = x(1+k1*r*r+k2*r*r*r*r+k3*r*r*r*r*r*r) 注意r的影响

切向畸变:来自整个摄像机的组装过程;透镜本身与图像平面不平行造成的。

xc = x+[2*p1*y+p2*(r*r+2x*x)]

畸变向量: k1 k2 p1 p2 k3

2. 标定 cvCalibrateCamera2

标定方法: 摄像机对准一个有很多独立可标识点的物体。通过旋转和移动物体,

在不同角度观看这个物体,可以利用通过每个图像计算摄像机的相对位置

和方向以及摄像机的内参数。

a. 旋转矩阵和平移向量

摄像机坐标系  物体坐标系(世界坐标系)

Pc = R*(Po - T)

3个旋转+3个平移  共6个参数

6+4个内参数 = 10 至少需要2个视角??

b. 棋盘 cvFindChessboardCorners

OPENCV不是使用基于3D构造物体的视场,而是使用平面物体的多个视场。

cvFindCornerSubPix()提高精度

cvDrawChessboardCorners

c. 单应性变换 homograph transform

单应性:从一个平面到另一个平面的投影映射。 (Z = 0)

如二维平面上的点映射到摄像机成像仪上的映射。

q = s*M*W*Q

W = [R t] 物理变换

M: 内参矩阵

H = s*M*W 单应性矩阵

关注点: 不是空间中所有的Q,而只是平面上的Q, 故使Z = 0。

opencv 正是利用从多个视场计算多个单应性矩阵的方法来求解摄像机内参数。cvFindHomography

d. 摄像机标定 cvCalibrateCamera2

为摄像机内参数和畸变参数进行摄像机标定。

d.1.

至少需要10幅 7X8的图像

d.2 cvFindExtrinsicCameraParams2 只计算外参数

3. 矫正

a. cvUndistort2

b. cvInitUndistortMap   cvRemap

c. cvUndistortPoints

4. 标定完整程序

5. cvRodrigues2

函数提供2种表示之间的相互转换

旋转的表示方法:

直观的方法: 向量r表示

简单的方法: 旋转矩阵R

九、投影和三维视觉

1.1 训练集和测试集

特征

"聚类"算法 "分类"算法

训练集  测试集  (验证集)

分类器

训练分类器的方法

1.2 监督数据和无监督数据

监督数据:  数据有标签(人脸有年龄)     分类

无监督数据: 数据无标签                 聚类

分类  回归

无监督的聚类数据经常形成一个特征向量供更高层的有监督的分类器使用。

两个典型的机器学习任务:  分类  聚类

计算机视觉的两个基本任务:识别  分割

1.3 生成模型和判别模型

判别算法

产生式算法

1.4 机器学习算法

Mahalanobis       (归一化特征的方差) 非分类和聚类算法

K均值             非监督的聚类方法

朴素贝叶斯分类器  通用的分类器

决策树            判别分类器

Boosting          多个判别子分类器的组合

随机森林          由决策树组成的"森林"

人脸检测/Harr分类器   巧妙使用Boosting

期望最大化(EM)

K近邻             最简单的分类器

神经网络          (字符识别)

支持向量机(SVM)   分类和递归

1.5 视觉中使用机器学习算法

(特征)

采集数据       www.flicker.com(图片网站)

给数据定标签  (http://www.mturk.com/mturk/welcome)

提取特征 (直方图 色彩 ) 处理(归一化)

训练集 测试集 验证集

选择分类器(计算速度  数据形式 内存大小)

1.6 特征向量的重要性

决策树

随机森林

用途:减少分类器需要考虑的特征的个数。

Breiman的变量重要性算法步骤:见P536 (P506)

1.7 诊断机器学习中的问题

Andrew Ng“Advice for Applying Machine Learning”

(http://www.stanford.edu/class/cs229/materials/ML-advice.pdf)

a. 大量数据比少量数据好

b. 好的特征比好的算法更重要

选取特征:

最大化它们的独立性

最小化它们在不同环境之下的变化。

c. 欠拟合   模型假设太严格

训练和测试都不好

d. 过拟合   学习了噪声等

训练很好  测试不好

e. 常见问题解决  见表13-2

f. 评价分类器的性能

交叉验证  自抽样法  ROC曲线  混淆矩阵

2. ML

2.1 函数

save

load  (先调用clear)

clear

train

predict

CvStatModel

write

read

2.2 train

(行,列) =(数据样本,特征变量)

2.3 predict

2.4 迭代次数

3. Mahalanobis

有些分类器(K邻近)很难处理方差很大的数据

cvCalcCovarMatrix  计算协方差矩阵

cvInvert           计算逆矩阵

cvMahalanobis

4. K-mean   cvKMeans2

聚类算法

问题和解决: 方差最小

5. 朴素贝叶斯分类

最简单监督学习分类器

6. 二叉决策树

回归不纯度

分类不纯度

度量: 熵   吉尼系数  错分类

特征的重要性  get_var_importance()

过拟合: 先建立树,然后修剪

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python文件合并_用Python 将两个文件的内容合并成一个新的文件.

一个文件的内容是:IntroductiontoProgramming,NetworkingFundamentals,InternetworkingTechnologies,PlatformTechnologies,InformationTechnologyforUsers,ComputerForensics,Enterpr... 一个文件的内容是: Introduction to Programming, Networking Fundamentals, Internetwo…

flash代码_Flash如何对制作文件进行优化

对FLASH进行优化分为两方面,一方面是代码上的优化,主要是通过优化提高FLASH性能,降低CPU占用和内存使用。另一方面是资源的优化,这方面的优化是为了减小编译后的文件大小以及制作文件的大小,因为如果不进行相应的优化&…

潜流式湿地计算_人工湿地计算书

人工湿地计算书1、尾水提升泵房集水池基本参数集水池设计规模为30000m3/d,约折合1250m3/h,按水力停留时间HRT为0.25 h计,集水井有效容积应为312.5 m3,考虑到与污水厂原有排污管道相契合,集水设计尺寸为:LBH…

deepin系统转为windows_windows系统下安装深度系统deepin

前期准备DiskGenius(用来扩展分区)deepin-20-amd64.iso(深度系统镜像文件)相关文件下载首先下载安装时要用的工具,分别为:DiskGenius , UltraISODiskGenius是一款磁盘工具,创建系统分区。UltraISO是用来打开系统光盘镜像文件工具。Win8/8.1/10无需下载Ul…

c3等待加载样式 vue_Vue.js__简易加载等待动画

Vue.js__简易加载等待动画Vue实现为览或讲琐了过自系一读页围这就多网解元当维自加,加载动画的样式取自其他出处,侵直分调浏器代,刚求的一学础过功互有解小久宗点差维含数删。将Vue属性览或讲琐了过自系一读页围这就多网解元当维和方法复制到…

软件开发模型_QT开发(二十三)——软件开发流程

一、软件开发流程简介软件开发流程是通过一系列步骤保证软件产品的顺利完成,是软件产品在生命周期内的管理学。软件开发流程的本质是软件开发流程与具体技术无关,是开发团队必须遵守开的规则。二、常见软件开发流程模型常见的软件开发流程模型包括即兴模…

python循环语句for计数_Bash For循环(递增计数)与for循环用法详解

先来看for循环的例子&#xff1a;用Bash Shell的for循环&#xff0c;每次递增数是500。复制代码 代码示例:#!/bin/bash##每次递增的数ADD_NUM500#递增1的话取消下行注释&#xff0c;并相应的注释另一句for的开头的#for ((i1;i<29500;i))#递增定义的数for ((i1;i<29500;i$…

python3.6.2用pyinstaller3.4报错_OceanBase 2.2 版本体验:用 BenchmarkSQL 跑 TPC-C

OB君&#xff1a;好消息&#xff01;「 OceanBase 2.2 版本 」正式上线官网啦&#xff01;&#xff08;点击阅读原文即可直接下载&#xff09;OceanBase 2.2版本是成功支撑2019年天猫双11大促的稳定版本&#xff0c;同时也是用于TPC-C测试且荣登TPC-C性能榜首的版本。我们将在接…

hive窗口函数_Hive sql窗口函数源码分析

在了解了窗口函数实现原理 spark、hive中窗口函数实现原理复盘 和 sparksql比hivesql优化的点(窗口函数)之后&#xff0c;今天又撸了一遍hive sql 中窗口函数的源码实现&#xff0c;写个笔记记录一下。简单来说&#xff0c;窗口查询有两个步骤&#xff1a;将记录分割成多个分区…

容大打印机ip修改工具_M1芯片版Mac无法连接打印机怎么办?

文末有优惠券在入手了M1芯片版MacBook Pro后&#xff0c;昨天我打算连接一下实验室的打印机。这个打印机的型号是HP LaserJet Professional M1213nf MFP&#xff0c;在同一个局域网内通过搜索IP即可连接。在我的旧设备2015款MacBook Air上&#xff0c;很轻松就连接了打印机。可…

语音对讲软件_三款语音转文字工具,语音输入,高效转换,准确率高

关于语音转文字的软件我在之前讲了很多&#xff0c;有些人听了也用了&#xff0c;效果不错&#xff0c;有些人看了就忘了&#xff0c;主要是不知道用它干嘛&#xff0c;其实语音转文字的软件主要功能就是为了让自己在写作的时候可以减少时间&#xff0c;提高效率&#xff0c;其…

linux中如何复制文件并重命名_linux复制重命名 linux复制一个文件并重命名

linux下怎么复制一个文件到另外一个目录并且重命名&#xff1f;使用Linux的CP命令复制一个文件&#xff0c;并指定一个新的文件名作为目标文件参数&#xff0c;实现复制文件时重命名文件的功能。例如&#xff0c;下面的命令将/root/fileaaa分配给/home目录并将其重命名为filebb…

python程序员搞笑段子_程序员的爆笑漫画和段子

Hi&#xff01;大家好呀&#xff01;我是你们幽默的喵哥&#xff01;每次推送&#xff0c;都是给大家推荐实用的项目或者技术&#xff0c;都比较枯燥。今天&#xff0c;喵哥就来给大家搞个有趣且幽默的。在程序员圈子中&#xff0c;我们也是有自己的职业文化的。比如&#xff0…

野火stm32呼吸灯程序_说一说STM32启动过程

STM32上电后是怎么启动的&#xff1f;main函数之前单片机都做了些什么&#xff1f;带着这些疑问我们开始进入游戏。。。。。首先&#xff0c;开局一张图&#xff0c;过程全靠编&#xff0c;如有说错的地方望能指正启动大致流程1- 上电启动或者硬件复位2- 单片机从0x00地址开始执…

linuxpython升级3.5_linux升级python3.5到3.6

在ubuntu里&#xff0c;zlib叫zlib1g&#xff0c;相应的zlib-devel叫zlib1g.dev。默认的安装源里没有zlib1g.dev。要在packages.ubuntu.com上找。$sudo apt-get install ruby然后再装zlib1g-dev就可以了$sudo apt-get install zlib1g-dev1. 安装必备的软件包centos: yum -y gro…

apache启动失败_请检查相关配置.√mysql5.1已启动._1、Apache启动失败,请检查相关配置-百度经验...

前几天电脑系统崩溃了,后边到服务中心重新恢复了系统,但是回来使用APMServ 5.2.6发现:1、Apache启动失败,请检查相关配置。√MySQL5.1已启动。系统的各种服务我都检查过了,都是正常开启的,百思不得其解,后边在百度上搜索一篇文章有个例子照做了以后结果成功了。---------------…

职业规划纵向横向_收下这份《职业规划喂饭式指南》

果不其然&#xff01;上篇文章发布后&#xff0c;我收到了被拿来举反例的网友小哥的抗议~~~讲道理&#xff0c;最后他拿到的Offer还是十分不错的&#xff0c;从此以后我的朋友圈又多了一位第一手保真瓜主&#xff0c;他好我也好~那么本期《职业规划喂饭式指南》来喽&#xff01…

mysql通过集合查询_MySQL使用集合函数进行查询操作实例详解

本文实例讲述了MySQL使用集合函数进行查询操作。分享给大家供大家参考&#xff0c;具体如下&#xff1a;COUNT函数SELECT COUNT(*) AS cust_num from customers;SELECT COUNT(c_email) AS email_num FROM customers;SELECT o_num, COUNT(f_id) FROM orderitems GROUP BY o_num;…

javascript字典中添加数组_如何在 JavaScript 中更好地使用数组

在 freeCodeCamp 社区阅读原文。本文短小精悍&#xff0c;我保证。在过去的数个月里&#xff0c;我注意到在我审阅的 pull request 中有四个&#xff08;关于数组使用的&#xff09;错误经常出现。同时&#xff0c;我自己也会犯这些错误&#xff0c;因此有了这篇文章。让我们一…

mysql join图解_MySQL中Join算法实现原理分析[多图]

在MySQL 中&#xff0c;只有一种 Join 算法&#xff0c;就是大名鼎鼎的 Nested Loop Join&#xff0c;他没有其他很多数据库所提供的 Hash Join&#xff0c;也没有 Sort Merge Join。顾名思义&#xff0c;Nested Loop Join 实际上就是通过驱动表的结果集作为循环基础数据&#…