- 博客(90)
- 收藏
- 关注
原创 关于执行sh ./xxx.sh时出现:Syntax error: “(” unexpected 的处理方法
产生Syntax error: “(” unexpected 的原因bash and dashBash是许多Linux平台的内定Shell,除bash外,还有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等。GNU/Linux 操作系统中的 /bin/sh 本是 bash的符号链接,但鉴于 bash 过于复杂,有人把 bash 从 NetBSD 移植到 Linux 并更名为 dash 并将 /bin/sh 指向它,以获得更快的脚本执行速度。Dash Shell 比 B
2022-03-27 11:51:39 2767
原创 pandas.get_dummies()
参考博客1参考博客2one hot 编码形式和定义one hot 编码,其为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都有独立的寄存器位,并且在任意时候只有一位有效。这些特征值并不是连续的,而是离散的,无序的。通常我们需要对其进行特征数字化。特征数字化性别特征:[“男”,“女”]按照N位状态寄存器来对N个状态进行编码的原理,咱们处理后应该是这样的(这里只有两个特征,所以N=2):男 → 10 女 → 01国家特征:[“中国”,"美国,“法国”](N=3)
2021-11-23 14:54:39 656
原创 sklearn.prepocessing.LabelEncoder()
参考博客1参考博客2函数作用将不同的类别进行编码函数的使用使用LabelEncoder()对数据集编码weather = ['sunny','windy','cloudy','rainy','sunny']en = sklearn.prepocessing.LabelEncoder()en = en.fit(['sunny','windy','cloudy','rainy'])weather = en.transform(weather)# weather = [2 3 0 1 2]
2021-11-23 14:20:53 1289
原创 cv::HoughLinesP()&CV::HoughLines()&cv::HoughCircles()
函数作用cv::HoughLinesP()和CV::HoughLines():检测直线cv::HoughCircles():检测圆函数原型void HoughLinesP(InputArray image, // 源图像,需为8位的单通道二进制图像 OutputArray lines, // 每一条线由具有四个元素的矢量(x_1,y_1, x_2, y_2) double rho, // double类型的rho, 以像素为单位的距离精度一般为1 double
2021-09-20 21:59:15 307
原创 cv::boundingRect()& cv::minAraeRect() & cv::minEnclosingCircle()
函数作用boundingRect()得到包覆此轮廓的最小正矩形。minAreaRect()得到包覆轮廓的最小斜矩形。minEnclosingCircle()得到包覆此轮廓的最小圆形。函数原型Rect boundingRect(InputArray points)RotatedRect minAreaRect(InputArray points)void minEnclosingCircle(InputArray points, Point2f& center,
2021-09-20 21:23:30 611
原创 cv::contourArea()
函数作用计算轮廓区域面积函数原型double contourArea(InputArray contour, bool oriented = false)// oriented方向:默认为false,表示取面积的绝对值// oriented = true:面积值会按照contour顺逆时针的不同出现正值或者负值...
2021-09-20 21:03:54 1147
原创 cv::findContours()
函数作用检测轮廓函数原型findContours( InputOutputArray image, // 输入图像,一般为二值图或者经过Canny()等处理过的图像 OutputArrayOfArrays contours, // 轮廓集合,类型为:vector<vector<Point>> OutputArray hierarchy, // 继承关系,类型为:vector<Vec4i>
2021-09-20 20:46:22 479
原创 cv.Laplacian()
函数作用Laplacian卷积函数。函数原型void Laplacian(InputArray src, OuntputArray dst, int ddpth // 输出矩阵数据类型 int ksize=1,// 拉普拉斯核类型 double scale=1,// 比例系数 double delta=0,// 平移系数 int borderType=BORDER_DEFAULT // 边界扩充
2021-09-13 19:54:26 645
原创 边缘检测——Canny边缘检测
Canny边缘检测步骤图像I分别与Sobel_x和Sobel_y做卷积,利用平方和开方求得到边缘强度。计算梯度方向对每个位置进行非极大值抑制处理。再对结果进行双阈值的滞后阈值处理。函数原型void Canny(InputArray img, OutputArray edges, double threshhold1, double threshold2, int apertureSize=3, bool L2
2021-09-13 17:59:51 478
原创 边缘检测——Sobel算子
Sobel算子和可分离性利用n=2时高斯卷积算子展开式的系数可作为非归一化的高斯平滑算子,把Prewitt算子中的非归一化均值平滑算子替换,即得到Sobel算子。
2021-09-13 17:30:07 175
原创 边缘检测——Roberts算子
Roberts算子对图像噪声具有较高的敏感性。有两种形式:加粗部分为锚点位置。当需要反映45°、135°对角线方向变化率:反映垂直和水平方向边缘:
2021-09-13 17:13:13 698
原创 cv::integral()
函数作用图像的积分。函数原型void integral( InputArray src, OutputArray sum, int sdepth = -1 );/* src.size() -> (H,W) sum.size() -> (H+1,W+1) 该函数会在src的上和左边补零,为了方便使用。*/
2021-09-12 14:56:05 212
原创 形态学处理——顶帽变换和底帽变换
顶帽变换(Top-hat)Top-hat定义为图像减去开运算结果开运算可以消除暗背景下的较亮区域,用原图减去开运算结果就可以得到原图中灰度较亮的区域,又称为白顶帽变换。还可以校正不均匀光照。底帽变换闭运算减去原图像闭运算可以删除亮度较高背景下的较暗区域,则再减去原图像就可以得到原图中灰度较暗的区域,又称为黑底帽变换。函数原型开运算、闭运算、白顶帽运算、黑底帽运算 结构元:getStructuringElement(shape,kSize[,anchor]) shape:
2021-09-12 14:51:17 4378
原创 形态学处理——开运算和闭运算
开运算操作先腐蚀后膨胀的过程称为开运算。开运算操作可以消除暗背景下的较亮区域。闭运算操作先膨胀后腐蚀的过程称为闭运算。闭运算可以消除亮背景下的较暗区域函数原型 结构元:getStructuringElement(shape,kSize[,anchor]) shape: MORPH_RECT:矩形结构元 MORPH_ELLIPSEM:椭圆形结构元 MORPH_CROSS:十字型结构元morphologyEx(src,op,element[,dst[,anchor[,iterati
2021-09-12 14:36:21 558
原创 形态学处理——膨胀
膨胀操作膨胀是取每一个位置领域内的最大值。如此,输出图像的总体亮度要大于输入图像,图像中较亮物体的尺寸增大,较暗物体的尺寸会变小。函数原型结构元:getStructuringElement(shape,kSize[,anchor]) shape: MORPH_RECT:矩形结构元 MORPH_ELLIPSEM:椭圆形结构元 MORPH_CROSS:十字型结构元dilate(src,element[,dst[,anchor[,iterations[,bord
2021-09-12 14:30:11 253
原创 形态学处理——腐蚀
腐蚀操作腐蚀是取每一个位置的领域内的最小值作为该位置的输出灰度值。函数原型// 结构元:getStructuringElement(shape,kSize[,anchor])// shape:// MORPH_RECT:矩形结构元// MORPH_ELLIPSEM:椭圆形结构元// MORPH_CROSS:十字型结构元erode(src,element[,dst[,anchor[,iterations[,bordertype[,borderValue]]]]])//
2021-09-12 14:26:14 159
原创 cv.converScaleAbs()
函数说明void cv::converScaleAbs(src,dst,double alpha = 1, double beta = 0)// dst = saturate_cast<CV_8UC>(src * alpha + beta)实例arr = np.array([123,12])arr = cv.convertScaleAbs(arr,arr,3.0)print(arr) # => [[255],[36]]'''cv.convertScaleAbs(arr,
2021-09-12 12:29:06 205
原创 Mat::convertTo()
函数作用目前,imwrite()只能接受CV_8UC1,CV_8UC3,CV_16UC1,CV_16UC3。convertTo()负责转换数据类型不同的Mat对象,即可以将类似float型的Mat转换到imwrite()函数能够接受的类型。cvtColor()是负责转换不同通道的Mat,因为该函数的第4个参数就可以设置目的Mat数据的通道数。函数原型void cv::Mat::convertTo ( OutputArray m,int rtype,double alpha = 1,dou
2021-09-12 12:05:32 1081
原创 cv.threshold()
函数作用图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效果。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。函数原型double threshold( InputArray src, OutputArray dst,double thresh, double maxval, int type ); enum ThresholdTypes {T THRESH_BINARY = 0,
2021-09-12 11:40:37 894
原创 cv.inRange()
函数作用将图像src中像素值位于[lower,upper)中的置为白色255,其余为黑色0.函数原型void inRange(src,lower,upper,dst);
2021-09-12 11:36:45 326
原创 opencv-图像的仿射变换和透视变换
仿射变换/**仿射变换: flip(src,dst,flipCode) # 图像翻转 flipCode = 0 : 垂直翻转 > 0 : 水平翻转 < 0 :同时垂直水平翻转------------------------------------------------------------------------ mapMatrix = getAffineTransform(src, dst) #取得图像仿射矩阵 由已知的两个矩阵求解变换矩阵:src和dst只能为3行两列数组
2021-09-12 10:45:04 102
原创 cv::matchTemplate()
函数作用图像匹配函数原型 void cv::matchTemplate( cv::InputArray image, // 用于搜索的输入图像, 8U 或 32F, 大小 W-H cv::InputArray templ, // 用于匹配的模板,和image类型相同, 大小 w-h cv::OutputArray result, // 匹配结果图像, 类型 32F, 大小 (W-w+1)-(H-h+1) int method // 用于比较的方法 );比较方法...
2021-09-11 20:09:37 177
原创 cv::mixChannels()
函数作用mixChannels()函数用于将输入数组的指定通道复制到输出数组的指定通道。函数原型void mixChannels( const Mat* src, //输入数组或向量矩阵,所有矩阵的大小和深度必须相同。 size_t nsrcs, //矩阵的数量 Mat* dst, //输出数组或矩阵向量,大小和深度必须与src[0]相同 size_t ndsts,//矩阵的数量 const int* fromTo,//指定被复制通道与要复制到的位置组
2021-09-07 11:35:51 403
原创 cv.remap()
函数功能remap():图像的重映射函数原型void cv::remap(InputArray src, OutputArray dst, InputArray map1, 可以是(x,y)的映射,也可以是单独的X的映射 InputArray map2, 如果map1为(x,y)的映射则可以为NULL,否则为y的映射 int interpolation, // 插值方式 int borderMode = BO
2021-09-06 20:02:52 491
原创 opencv常用插值和边界处理方式
// 在opencv中主要有五种常用的插值方式1. INTER_LINEAR 双线性插值2. INTER_NEAREST 最邻近插值3. INTER_CUBIC 双三次样条插值4. INTER_AREA 邻域像素再取样5. INTER_LANCZOS4 8X8领域兰索斯插值
2021-09-05 10:59:05 633
原创 cv::HoughCircle()
函数作用利用霍夫变换检测图像中的圆函数原型void cv::HoughCircles (InputArray image, // 8位单通道灰度图 OutputArray circles, // tyoe:vector<Vec3f>,(x,y,raduis) int method, // 梯度求解方法:HOUGH_GRADIENT,HOUGH_GRADIENT_ALT double dp, //累加器分辨率与图像分辨率的反比。
2021-09-04 16:01:43 203
原创 cv::HoughLinesP() 与 cv::HoughLines()
函数作用通过霍夫变换寻找图像中的直线函数原型cv::HoughLines()void cv::HoughLines (InputArray image, // 必须为单通道8位二进制图像 OutputArray lines, // 类型:vector<Vec2f> 表示形式为(ro,theta) double rho, // 生成极坐标时像素的扫描步长,一般为1 double theta, //角度分辨率 int
2021-09-04 15:35:15 554
原创 cv::calcHist()
函数作用计算灰度图像的灰度分布直方图函数原型void calcHist( const Mat* images, int nimages, const int* channels, InputArray mask, OutputArray hist, int dims, const int* histSize, const float** ranges, bool uniform = true, bool accu
2021-09-03 15:22:27 729
原创 cv::equalizeHist()
直方图均衡化函数实现的灰度直方图均衡化算法,即将直方图的每个灰度值进行归一化处理,求各个灰度的累积分布,接着得到一个映射的灰度映射表,然后根据相应的灰度值来修正原图中的每个像素。函数原型void equalizeHist(InputArray src, OutputArray dst )实例 Mat img = imread("F:\\desktop\\OpenCV_study\\my.jpg", IMREAD_GRAYSCALE); Mat dst; equa
2021-09-03 14:58:10 694
原创 cv.pyrUp() 和cv.pyrDown()
函数作用图像金字塔中的向上和向下采样分别通过 pyrUp 和 pyrDown 实现。这里的向上向下采样,是针对图像的尺寸而言的(和金字塔的方向相反),向上就是图像尺寸加倍,向下就是图像尺寸减半。对于 pyrUp,图像首先在每个维度上扩大为原来的两倍,新增的行和列(偶数行和列)以 0 填充。然后用指定的滤波器进行卷积(实际上是一个在每个维度上都扩大为原来两倍的过滤器)去估计”丢失“像素的近似值。对于 pyrDown,先用高斯核对图像进行卷积,然后删除所有偶数行和偶数列,新的到的图像面积就会变成源图像的
2021-09-03 14:32:24 958
原创 cv::threshold()
函数作用二值化就是根据不同的条件将每个像素点调整为0/255,也可以调整为其他值。函数原型double cv::threshold(InputArray src, OutputArray dst, double thresh, double maxVal, int type )// src: 原图像// dst:输出图像// thresh:阈值// maxVal:dst中像素最大值// type:阈值类型阈值类型
2021-09-03 14:10:46 175
原创 numpy.dot()
作用用于矩阵的乘法运算,其中包括:向量内积、多维矩阵乘法和矩阵与向量的乘法。向量内积向量(一维矩阵)的内积要求为:内积的向量列数相同arr1 = np.array([1,2,3])arr2 = np.array([1,2,3])arr3 = np.dot(arr1,arr2)# arr3 = 1*1+2*2+3*3多维矩阵乘法两个矩阵(arr1, arr2)如果可以进行乘法运算,需要满足以下条件:arr1为 m×n 阶矩阵,arr2为 n×p 阶矩阵,则相乘的结果 arr3 为 m×p
2021-08-29 21:18:44 165
原创 cv.Canny()
void cv.Canny(InputArray src,OutputArray dst,double threshold1,double threshold2, int apertureSize=3,bool L2gradient = false )/*threshold1:低阈值threshold2:高阈值apertureSize:使用的Sobel核的大小,默认3X3L2gradient:代表计算边缘强度时使用的计算方式。true:平方和开方,false:绝对值*/.
2021-08-24 16:32:57 227
原创 np.arctan2()
计算反正切np.arctan2(array_y, array_x) # 返回值弧度 , 需要用以下公式转为角度np.arctan2(y, x) * 180 / np.pi
2021-08-24 16:22:30 4231
原创 cv.normalize()
直方图正规化:可以处理多通道矩阵 void normalize(src,dst,alpha=1,beta=0,norm_type=NORM_L2,dtype=-1,maskArray) NORM_MINMAX:数组的数值被平移或缩放到一个指定的范围,线性归一化,一般较常用。 NORM_INF : 矩阵中绝对值的最大值 NORM_L1 : 归一化数组的L1-范数(绝对值的和) NORM_L2 : 归一化数组的(欧几里德)L2-范数 dtype=-1,则输出矩阵的类型同
2021-08-24 16:16:15 1036
原创 cv::Scharr()
Scharr算子:void Scharr(src,dst,dDepth,int dx,int dy,kSize=3,scale=1,delta=0,borderType=BORDER_DEFAULT) dx != 0 : src与差分方向为水平的Scharr核卷积 dx == 0 , dy != 0 : src与差分方向为垂直方向的Scharr做卷积 kSize = 1, 3, 5, 7,... Sobel卷积核的尺寸 scale=1 比例系数 delta=0:平移系数
2021-08-24 11:08:38 220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人