广角镜头的处理
2019-08-16 07:17
1656 查看
标定
import cv2 import numpy as np import glob criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001) w,h = 9,6 objp = np.zeros((w * h, 3), np.float32) objp[:, :2] = np.mgrid[0:w, 0:h].T.reshape(-1, 2) obj_points = [] img_points = [] images = glob.glob('待标定图像') for fname in images: img = cv2.imread(fname) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) size = gray.shape[::-1] ret, corners = cv2.findChessboardCorners(gray, (w, h), None) if ret == True: cv2.cornerSubPix(gray, corners, (11, 11), (-1, -1), criteria) obj_points.append(objp) img_points.append(corners) cv2.drawChessboardCorners(img, (w, h), corners, ret) cv2.imwrite('标定图.png', img) ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(obj_points, img_points, gray.shape[::-1], None, None) dist = np.delete(dist, [4]) #当畸变不夸张时舍去K3
矫正
img2 = cv2.imread('待矫正图') h, w = img2.shape[:2] newcameramtx, roi = cv2.getOptimalNewCameraMatrix(mtx, dist, (w, h), 1, (w, h)) dst = cv2.undistort(img2, mtx, dist, None, newcameramtx) cv2.imwrite('矫正图.png', dst)
相关文章推荐
- Struts2 异常处理 ( jsp记录异常信息到日志 )
- 使用Apache通过JK实现多Tomcat负载均衡集群时,Apache不能将请求分发给Tomcat处理(即Apache反向代理不成功)的问题
- android中处理异常崩溃
- JavaScript权威指南_163_第17章_事件处理_17.2-注册事件处理程序-设置HTML标签属性为事件处理程序
- ListView子布局样式有多个的处理
- java中文件和流处理
- MySQL 加锁处理分析
- 处理大并发之五 使用libevent利器bufferevent
- css3中的content字图片处理background
- 线程池多线程处理
- 聊聊如何处理程序中的“分支条件”更加合理
- GetResponse()获取错误时处理方式 500错误
- ASP+SQL Server 对日期(查询)处理总结
- Concurrency Utilities 并发处理(2)Condition 条件变量
- C#图形处理系列(三)——霓虹处理、浮雕处理
- Unity3D图像后处理特效——Global Fog
- 【8086汇编基础】03--变量、数组和常量的处理
- 读xls处理工时
- STK对卫星轨道摄动的处理
- WIN7操作平台获取管理员权限批处理