OPENCV可以对1280*960的摄像机标定吗?

OPENCV可以对1280*960或更高分辨率的摄像机标定吗?

3个回答

应该可以,看技术文档,没发现OPENCV有分辨率的限制

没有分辨率限制吧,可以实现。

标定似乎是可以设置的,好像摄像头能读的分辨率有限制,我记得是opencv2这个版本

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
利用opencv中的张正友方法进行摄像机标定
利用opencv和c++进行摄像机标定,采用的程序是网上的基于张正友的标定方法,网上说的结果和我的执行结果不同,是采用了不同角度的20张图片,理论上这20张图片的旋转向量和平移向量应该不相同,但是我最后求出来的旋转矩阵和平移向量竟然都是相同的,结果如下,,,,,,不知道是怎么回事儿??请教高手解答啊 第1幅图像的旋转向量: {{-2.65698e+303,-2.65698e+303,-2.65698e+303}} 第1幅图像的旋转矩阵: {-0.00898613,0.996418,-0.0840802} {0.999955,0.00919614,0.00211072} {0.00287637,-0.0840575,-0.996457} 第1幅图像的平移向量: {{-2.65698e+303,-2.65698e+303,-2.65698e+303}} 第2幅图像的旋转向量: {{-2.65698e+303,-2.65698e+303,-2.65698e+303}} 第2幅图像的旋转矩阵: {-0.00888817,0.999563,-0.0282044} {0.999956,0.00896878,0.00273282} {0.00298458,-0.0281789,-0.999598} 第2幅图像的平移向量: {{-2.65698e+303,-2.65698e+303,-2.65698e+303}} 第3幅图像的旋转向量: {{-2.65698e+303,-2.65698e+303,-2.65698e+303}} 第3幅图像的旋转矩阵: {-0.00900118,0.999019,-0.0433501} {0.999954,0.00913592,0.00291099} {0.00330417,-0.0433219,-0.999056} 第3幅图像的平移向量: {{-2.65698e+303,-2.65698e+303,-2.65698e+303}} 第4幅图像的旋转向量: {{-2.65698e+303,-2.65698e+303,-2.65698e+303}} 第4幅图像的旋转矩阵: {-0.00939113,0.99699,-0.0769601} {0.999953,0.00916736,-0.00326046} {-0.00254512,-0.0769871,-0.997029} 第4幅图像的平移向量: {{-2.65698e+303,-2.65698e+303,-2.65698e+303}} 第5幅图像的旋转向量: {{-2.65698e+303,-2.65698e+303,-2.65698e+303}} 第5幅图像的旋转矩阵: {-0.00942485,0.995629,-0.0929177} {0.999954,0.00921809,-0.00265418} {-0.00178606,-0.0929384,-0.99567}
摄像机标定opencv问题
程序出现:Opencv Error:Incorrect size of input array(。。。) 怎么改? Matrix<double> object_points(1,board_size.width*board_size.height*image_count,3); /* 保存定标板上角点的三维坐标 */ 调试到这里就报那个错误 Matrix<double> image_points(1,image_points_seq.cvseq->total,2); /* 保存提取的所有角点 */
摄像机高度对测量的影响
利用opencv提供的函数对摄像机进行了标定后,当摄像机与工件距离45cm处测量精度 最高,但当改变摄像机与工件的高度时,测量误差也随之加大,那么这部分由于高度变化 造成的偏差能够得到补偿吗?如何做了?
关于opencv标定(cvCalibrateCamera2)的问题
#include"opencv2/opencv.hpp" #include"opencv2/highgui/highgui.hpp" #include"opencv2/core/core.hpp" #include"opencv2/imgproc/imgproc.hpp" #include"iostream" using namespace cv; using namespace std; int main() { VideoCapture capture(1); if (!capture.isOpened()) { cout << "摄像头打开失败" << endl; return 0; } Mat frame; namedWindow("捕捉画面", WINDOW_AUTOSIZE); char filename[20]; int image_num = 1; while (true) { capture >> frame; if (!frame.data) { cout << "获取帧数失败" << endl; return 0; } imshow("捕捉画面", frame); if (waitKey(10) == ' ') { sprintf(filename, "%d.jpg", image_num); imwrite(filename, frame); cout << "截取第" << image_num << "张图片成功" << endl; image_num++; } if(waitKey(10)=='q'||waitKey(10)=='27') { cout << "总共截取" << --image_num << endl; cout << "截图程序结束" << endl; break; } } int rows = frame.rows; int cols = frame.cols; destroyWindow("捕捉画面"); Size board_size = Size(7, 7);//棋盘格每行每列的内角点个数 int per_image_point = board_size.height*board_size.width;//每张图片一共多少个角点 CvPoint2D32f* image_point_buf = new CvPoint2D32f[per_image_point];//存放每个角点坐标的坐标的数组 CvMat* image_points=cvCreateMat(per_image_point*image_num, 2, CV_32FC1);//定义图片坐标系 CvMat* object_points=cvCreateMat(per_image_point*image_num, 3, CV_32FC1);//定义世界坐标系 CvMat* point_count = cvCreateMat(image_num,1, CV_32SC1);//用来存放成功标定图片的角点数的图片 IplImage* show;//存放截图到的图片 int found=0;//用来判定是否检测到每张截取图片上所有的角点的标识符 int corner_counts;//存放每张图片输出角点的个数 int success = 0;//用来计算成功标定图片的张数 int step;//用来计算图像坐标系和世界坐标系存储角点坐标的个数 int cube_length = 7; for (int i=1; i <= image_num; i++) { sprintf(filename, "%d.jpg", i); show = cvLoadImage(filename); namedWindow("replay"); /*检测角点*/ found = cvFindChessboardCorners(show, board_size, image_point_buf, &corner_counts, CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS); if (found == 0) { cout << "第" << i << "张图片没有检测到棋盘格所有的角点" << endl; cvShowImage("replay", show); waitKey(0); } else { cout << "第" << i << "张图片检测到" << corner_counts << "个角点" << endl; IplImage* grayimage=cvCreateImage(cvGetSize(show),8,1);//创建一个一show具有同一size、8位、单通道的矩阵 cvCvtColor(show, grayimage, COLOR_BGR2GRAY); /*亚像素角点检测*/ cvFindCornerSubPix(grayimage,image_point_buf,corner_counts,Size(11,11),Size(-1,-1), TermCriteria(CV_TERMCRIT_ITER+CV_TERMCRIT_EPS, 30, 0.1)); /*绘制角点*/ cvDrawChessboardCorners(show, board_size, image_point_buf, corner_counts, found); cvShowImage("replay", show); waitKey(0); } if (per_image_point == corner_counts) { step = success*per_image_point; for (int i = step, j = 0; j < per_image_point; ++i, ++j) { /*由于图像坐标系imagr_points是由image_num行,2列组成,所以第一列存放角点的x坐标,第二列存放角点的y坐标*/ CV_MAT_ELEM(*image_points, float, i, 0) = image_point_buf[j].x; CV_MAT_ELEM(*image_points, float, i, 1) = image_point_buf[j].y; CV_MAT_ELEM(*object_points, float, i, 0) = (float)(j / cube_length); CV_MAT_ELEM(*object_points, float, i, 1) = (float)(j % cube_length); CV_MAT_ELEM(*object_points, float, i, 2) = 0.0f; } /*图片point_count是由image_num行、1列组成,用来存放成功标定图片的角点数*/ CV_MAT_ELEM(*point_count, int, success, 0) = per_image_point; success++; } } cvReleaseImage(&show); cvDestroyWindow("replay"); cout << image_num << "张图片中," << success << "张图片标定成功" << endl; cout << image_num << "张图片中," << image_num-success << "张图片标定失败" << endl; /*开始计算摄像机内外参数*/ /*CvCapture* capture1; capture1 = cvCreateCameraCapture(1); IplImage* show_colie; show_colie = cvQueryFrame(capture1);*/ CvMat* object_points2 = cvCreateMat(per_image_point*success, 3, CV_32FC1); CvMat* image_points2 = cvCreateMat(per_image_point*success, 2, CV_32FC1); CvMat* point_count2 = cvCreateMat(success, 1, CV_32SC1); for (int i = 0; i < success*per_image_point; ++i) { CV_MAT_ELEM(*image_points2, float, i, 0) = CV_MAT_ELEM(*image_points, float, i, 0); CV_MAT_ELEM(*image_points2, float, i, 1) = CV_MAT_ELEM(*image_points, float, i, 1); CV_MAT_ELEM(*object_points2, float, i, 0) = CV_MAT_ELEM(*object_points, float, i, 0); CV_MAT_ELEM(*object_points2, float, i, 1) = CV_MAT_ELEM(*object_points, float, i, 1); CV_MAT_ELEM(*object_points2, float, i, 2) = CV_MAT_ELEM(*object_points, float, i, 2); } for (int i = 0; i < success; ++i) CV_MAT_ELEM(*point_count2, int, i, 0) = CV_MAT_ELEM(*point_count, int, i, 0); cvReleaseMat(&image_points); cvReleaseMat(&object_points); cvReleaseMat(&point_count); /*用来存放形变参数的矩阵,其通常为[k1,k2,p1,p2,k3]的一维向量,其中k1,k2,k3为径向畸变,p1,p2为切向畸变*/ CvMat* distortion_coeffs = cvCreateMat(5, 1, CV_32FC1); /*用来存放内参数的矩阵,其通常为[fx,0,cx 0,fy,cx 0, 0, 1]*/ CvMat* intrinsic_matrix = cvCreateMat(3, 3, CV_32FC1); CV_MAT_ELEM(*intrinsic_matrix, float, 0, 0) = 1.0f; CV_MAT_ELEM(*intrinsic_matrix, float, 1, 1) = 1.0f; /*计算摄像头的内外参数*/ cvCalibrateCamera2(object_points2, image_points2, point_count2, Size(rows,cols), intrinsic_matrix, distortion_coeffs, NULL, NULL, 0); cout << "内参数矩阵为:" << endl; cout << CV_MAT_ELEM(*intrinsic_matrix, float, 0, 0) <<" "<< CV_MAT_ELEM(*intrinsic_matrix, float, 0, 1) <<" "<< CV_MAT_ELEM(*intrinsic_matrix, float, 0, 2) << endl; cout << CV_MAT_ELEM(*intrinsic_matrix, float, 1, 0) << " " << CV_MAT_ELEM(*intrinsic_matrix, float, 1, 1) << " " << CV_MAT_ELEM(*intrinsic_matrix, float, 1, 2) << endl; cout << CV_MAT_ELEM(*intrinsic_matrix, float, 2, 0) << " " << CV_MAT_ELEM(*intrinsic_matrix, float, 2, 1) << " " << CV_MAT_ELEM(*intrinsic_matrix, float, 2, 2) << endl; //cout << "形变参数为:" << endl; //cout << distortion_coeffs << endl; /*cvSave("内参数矩阵.xml", intrinsic_matrix); cvSave("形变参数矩阵.xml", distortion_coeffs); CvMat* intrinsic = (CvMat*)cvLoad("内参数矩阵.xml"); CvMat* distortion = (CvMat*)cvLoad("形变参数矩阵.xml"); IplImage* mapx = cvCreateImage(cvGetSize(show_colie), IPL_DEPTH_32F, 1); IplImage* mapy = cvCreateImage(cvGetSize(show_colie), IPL_DEPTH_32F, 1); cvInitUndistortMap(intrinsic, distortion, mapx, mapy); namedWindow("原始图"); namedWindow("非畸变图"); while (show_colie) { show_colie = cvQueryFrame(capture1); IplImage* clone = cvCloneImage(show_colie); cvShowImage("原始图", show_colie); cvRemap(clone, show_colie, mapx, mapy); cvReleaseImage(&clone); cvShowImage("非畸变图", show_colie); waitKey(0); } */ system("pause"); return 0; } 结果显示: ![图片说明](https://img-ask.csdn.net/upload/201703/29/1490785876_646196.png) 请求大神们告知为什么这样,万分感谢
cvCalibrateCamera标定的一些问题
最近研究摄像机标定,先用单目摄像机标定。发现如下问题: 1. cvCalibrateCamera第一个参数object_points是角点在世界坐标系中坐标(世界坐标系原点在第一个角点位置,标定板所有点坐标都在Z=0的平面上)。 第二个参数image_points是角点在图像坐标系中坐标(图像坐标系原点在第一个角点位置)。这个参数可以通过cvfindchessboardcorners函数得到。 提取出来的角点坐标image_points包含的是图像中先按照从左到右,再从上到下顺序存储的坐标值。理论上第一个参数的点应该和第二个参数对应上,可是我发现opencv书中的代码是先从上到下,再从左至右: step = successes*board_n; for( int i=step, j=0; j<board_n; ++i,++j ) { CV_MAT_ELEM(*image_points, float,i,0) = corners[j].x; CV_MAT_ELEM(*image_points, float,i,1) = corners[j].y; CV_MAT_ELEM(*object_points,float,i,0) = (j/board_w)*21.5; // 个人觉得应该是CV_MAT_ELEM(*object_points,float,i,0) = j%board_w; CV_MAT_ELEM(*object_points,float,i,1) = (j%board_w)*21.5; // 个人觉得应该是CV_MAT_ELEM(*object_points,float,i,0) = j/board_w; CV_MAT_ELEM(*object_points,float,i,2) = 0.0f; } 源代码坐标依次是(0,0,0),(0,1*21.5,0),(0,2*21.5,0).....是先从上到下。 我的代码坐标依次是(0,0,0),(1*21.5,0,0),(2*21.5,0,0) .....是从左至右。 而标定板上检测出的角点顺序是先从左至右,再从上到下。不知道哪个正确?? 两个方法我都试了,效果并没有明显不同。 得出的摄像机内矩阵和畸变系数分别是 <?xml version="1.0"?> <opencv_storage> <Intrinsics type_id="opencv-matrix"> <rows>3</rows> <cols>3</cols> <dt>f</dt> <data> 1.30523621e+003 0. 3.19316345e+002 0. 1.31042041e+003 1.88144318e+002 0. 0. 1.</data></Intrinsics> </opencv_storage> <?xml version="1.0"?> <opencv_storage> <Distortion type_id="opencv-matrix"> <rows>5</rows> <cols>1</cols> <dt>f</dt> <data> 7.49643818e-002 -7.14159346e+000 2.39964016e-003 -1.75716709e-002 7.27485962e+001</data></Distortion> </opencv_storage> //////////////////////////////////////////////////////////////////////////////////////// <?xml version="1.0"?> <opencv_storage> <Intrinsics type_id="opencv-matrix"> <rows>3</rows> <cols>3</cols> <dt>f</dt> <data> 1.30245691e+003 0. 3.19592133e+002 0. 1.30768018e+003 1.88326523e+002 0. 0. 1.</data></Intrinsics> </opencv_storage> <?xml version="1.0"?> <opencv_storage> <Distortion type_id="opencv-matrix"> <rows>5</rows> <cols>1</cols> <dt>f</dt> <data> 7.38773346e-002 -7.05401230e+000 2.40107719e-003 -1.75304897e-002 7.13559875e+001</data></Distortion> </opencv_storage> ////////////////////////////////////////////////////////////////////// 本人使用matlab也做了校正,得出的摄像机内矩阵和畸变系数如下: Focal Length: fc = [ 17702.95064 18428.99257 ]  [ 2237.98276 2860.08116 ] Principal point: cc = [ 319.50000 239.50000 ]  [ 0.00000 0.00000 ] Skew: alpha_c = [ 0.00000 ]  [ 0.00000 ] => angle of pixel axes = 90.00000  0.00000 degrees Distortion: kc = [ -59.26465 210144.98702 0.23047 -0.55149 0.00000 ]  [ 62.11093 310619.70504 0.10025 0.08585 0.00000 ] Pixel error: err = [ 1.10052 1.13712 ] 相差很多,不知道哪出现问题了。 2. 如何验证校验结果,使用matlab进行标定发现得出的摄像机内矩阵和畸变系数与自己写代码得出差很多,见上面。通过右眼看校正后的图像看不出来校正效果。因为原图像本身就没有太大的畸变。 3. 得出的旋转向量和平移向量是什么意思?为什么我得不到旋转向量和平移向量,这两个参数带NULL是没有问题的 cvCalibrateCamera2(object_points2, image_points2, point_counts2, cvGetSize(image), intrinsic_matrix, distortion_coeffs, 0, 0,0); 但是带入向量就会出现unhandled exception,代码如下: cvCalibrateCamera2(object_points2, image_points2, point_counts2, cvGetSize(image), intrinsic_matrix, distortion_coeffs, rotation_vectors, translation_vectors, CV_CALIB_USE_INTRINSIC_GUESS); 新人刚研究opencv,希望各位出谋划策,给点帮助,谢谢了。
单摄像头张氏标定法中,如果相机的拍摄的平台高度发生变化,是否需要重新标定。
相机的位置和角度不会发生变化,但是拍摄的视图平台到相机的距离会变化,是否需要对每次视图平台变化后都重新标定?(Opencv)
opencv双目测距 得到三维坐标结果溢出
做Opencv双目测距 使用cvReprojectImageTo3D函数求目标三维坐标 ``` CvMat* depth_disparity=cvCreateMat(img_left_Change->height,img_left_Change->width, CV_32FC3 ); cvReprojectImageTo3D(norm_disparity,depth_disparity,&t_Q,0); CvScalar scal = cvGet2D( depth_disparity, Xlu, Ylu ); cout<<"点("<<Xlu<<","<<Ylu<<")的三维坐标为:"<<endl<<scal.val[0]<<" "<<scal.val[1]<<" "<<scal.val[2]<<endl; ``` 摄像机标定用MATLAB标定的,标定结果 ![图片说明](https://img-ask.csdn.net/upload/201505/19/1432017355_808024.jpg) 重投影矩阵 ![图片说明](https://img-ask.csdn.net/upload/201505/19/1432017384_455888.jpg) 最后得到的三维坐标显示 ![图片说明](https://img-ask.csdn.net/upload/201505/19/1432018109_168896.jpg) 想请问下结果出现这样的原因是什么,是哪个参数出的问题?
立体标定图像实时同步获取方法???
请问大神: 在做立体标定实验之前,都需要采集好左右摄像机的标定图像;而这两组相关的标定图像要如何实时同步获取?程序代码能不能实现?
opencv3单目视觉测量 机器视觉 零件尺寸测量
我现在要用单目视觉测量物体上两个黑点的各自形心在世界坐标系下的坐标,我已经对物体所在平面标定了,得到摄像机内外参数,并且提取出黑点各自在图像平面的图像坐标系下的坐标,请问大神们怎么求到世界坐标系下坐标![图片说明](https://img-ask.csdn.net/upload/201710/30/1509368657_786185.jpg)大神们有类似的代码吗,我参考参考,就是由图像坐标系转换到世界坐标系的代码
关于机器视觉的新手问题
刚入手视觉这一块,老师给我的任务是实现单目相机的定位 1 关于摄像头标定,是只能在MATLAB和OPENCV下实现吗,我实现了在ROS下的标定并且获得了内参数和畸变系数,如何获得外参呢 ? 2 笔记本电脑打摄像头可以使用吗,在我的标定界面,笔记本的畸变非常不明显。 3 获得标定参数后,下一步该做什么呢,是用系数去校正畸变的图像吗?那再下一步应该学习什么,希望大神给指明一下
关于图像中物体的双目测距
我最近在做有关双目视觉的项目,已经完成了摄像机的标定、校正和匹配过程,得到了视差图,可是如果我想知道图片中某一个物体的深度,应该怎么办呢?可不可以直接利用reprojectTo3D()这个方法然后再取特定点的坐标信息呢?希望做过这方面研究的小伙伴给提供一个方向~谢谢!
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
前言 同步I/O模型通常用于实现Reactor模式 异步I/O模型则用于实现Proactor模式 最后我们会使用同步I/O方式模拟出Proactor模式 一、Reactor模式 Reactor模式特点 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将时间通知工作线程(逻辑单元)。除此之外,主线程不做任何其他实质性的工作 读写数据,接受新的连接,以及处...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
进程通信方式总结与盘点
​ 进程通信是指进程之间的信息交换。这里需要和进程同步做一下区分,进程同步控制多个进程按一定顺序执行,进程通信是一种手段,而进程同步是目标。从某方面来讲,进程通信可以解决进程同步问题。 ​ 首先回顾下我们前面博文中讲到的信号量机制,为了实现进程的互斥与同步,需要在进程间交换一定的信息,因此信号量机制也可以被归为进程通信的一种方式,但是也被称为低级进程通信,主要原因为: 效率低:一次只可操作少量的...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
听说了吗?阿里双11作战室竟1根网线都没有
双11不光是购物狂欢节,更是对技术的一次“大考”,对于阿里巴巴企业内部运营的基础保障技术而言,亦是如此。 回溯双11历史,这背后也经历过“小米加步枪”的阶段:作战室从随处是网线,交换机放地上的“一地狼藉”;到如今媲美5G的wifi网速,到现场却看不到一根网线;从当年使用商用AP(无线路由器),让光明顶双11当天断网一分钟,到全部使用阿里自研AP……阿里巴巴企业智能事业部工程师们提供的基础保障...
在阿里,40岁的奋斗姿势
在阿里,40岁的奋斗姿势 在阿里,什么样的年纪可以称为老呢?35岁? 在云网络,有这样一群人,他们的平均年龄接近40,却刚刚开辟职业生涯的第二战场。 他们的奋斗姿势是什么样的呢? 洛神赋 “翩若惊鸿,婉若游龙。荣曜秋菊,华茂春松。髣髴兮若轻云之蔽月,飘飖兮若流风之回雪。远而望之,皎若太阳升朝霞;迫而察之,灼若芙蕖出渌波。” 爱洛神,爱阿里云 2018年,阿里云网络产品部门启动洛神2.0升...
关于研发效能提升的思考
研发效能提升是最近比较热门的一个话题,本人根据这几年的工作心得,做了一些思考总结,由于个人深度有限,暂且抛转引入。 三要素 任何生产力的提升都离不开这三个因素:人、流程和工具,少了其中任何一个因素都无法实现。 人,即思想,也就是古人说的“道”,道不同不相为谋,是制高点,也是高层建筑的基石。 流程,即方法,也是古人说的“法”。研发效能的提升,也就是要提高投入产出比,既要增加产出,也要减...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯
程序员该看的几部电影
##1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
入职阿里5年,他如何破解“技术债”?
简介: 作者 | 都铎 作为一名技术人,你常常会听到这样的话: “先快速上线” “没时间改” “再缓一缓吧” “以后再解决” “先用临时方案处理” …… 当你埋下的坑越来越多,不知道哪天哪位同学就会踩上一颗雷。特别赞同“人最大的恐惧就是未知,当技术债可说不可见的时候,才是最让人不想解决的时候。” 作为一个程序员,我们反对复制粘贴,但是我们经常会见到相似的代码,相同的二方包,甚至整个代码...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad
深度学习入门笔记(十八):卷积神经网络(一)
欢迎关注WX公众号:【程序员管小亮】 专栏——深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献。 2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。 3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。 4)此属于第一版本,若有错误,还需继续修正与...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
节后首个工作日,企业们集体开晨会让钉钉挂了
By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸...
Java基础知识点梳理
Java基础知识点梳理 摘要: 虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了学好java打下基础。 Java简介 java语言于1995年正式推出,最开始被命名为Oak语言,由James Gosling(詹姆
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
你也能看懂的:蒙特卡罗方法
蒙特卡罗方法,也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法 蒙特卡罗方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计算机的运算能力可以直接模拟这种随机的过程。另一种类型是所求解问题可以转化为某种随机分布的特征数,比如随机事件出现的概率,或...
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名...
JAVA后端面试《Spring》
Spring1.Spring是什么?有什么好处?2.IOC是什么?有什么好处?具体过程?3.DI是什么?4.IOC和DI的关系?5.bean标签的属性有哪些?6.IOC创建对象有哪几种方式?7.Spring是如何实现IOC的?也就是如何创建对象的? 1.Spring是什么?有什么好处? 概念: SPring是一个支持控制反转(IOC)和面向切面编程(AOP)的容器框架。 好处: 两降低&gt;&...
AI 医生“战疫”在前线
作者| Just出品|CSDN(CSDNnews)紧急驰援疫区,AI医生也出动了。截止到2月6日,随着新冠病毒肺炎疫情的不断发展,全国累计已有31161例确诊病例,26359例疑...
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计...
用Python爬取新型冠状病毒肺炎实时数据,pyecharts v1.x绘制省市区疫情地图
文章目录运行结果(2020-2-8数据)基本方案数据格式全国疫情地图实现福建省疫情地图实现福州市疫情地图实现其他 运行结果(2020-2-8数据) 基本方案 web请求用requests 网页内容解析用pyquery、beautifulsoup和正则表达式 地图用pyecharts v1.6.2 数据来源 全国数据来源于腾讯实时疫情动态,直接get到json 福州市数据来源于福建省疾病预...
MySQL基础笔记
如有错误,恳请告知。非常感谢! 环境(相关下载、配置): phpstudy7.0.9 Apache2.4.39 MySQL5.7.26 phpMyAdmin4.8.5 此文在Windows10下实验并且假设以上环境均准备好。 如何打开安装好的MySQL命令行? 如下图所示。打开phpstudy的安装目录,打开Extensions目录,打开MySQL5.7.26文件,打开bin文件,在上方的路径...
HTML5适合的情人节礼物有纪念日期功能
前言 利用HTML5,css,js实现爱心树 以及 纪念日期的功能 网页有播放音乐功能 以及打字倾诉感情的画面,非常适合情人节送给女朋友 具体的HTML代码 具体只要修改代码里面的男某某和女某某 文字段也可自行修改,还有代码下半部分的JS代码需要修改一下起始日期 注意月份为0~11月 也就是月份需要减一。 当然只有一部分HTML和JS代码不够运行的,文章最下面还附加了完整代码的下载地址 &lt;!...
相关热词 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数 c#日期精确到分钟 c#自定义异常必须继承 c#查表并返回值 c# 动态 表达式树 c# 监控方法耗时 c# listbox c#chart显示滚动条
立即提问