当前位置: 首页 > news >正文

嘉兴网站制作网络广告策划书案例

嘉兴网站制作,网络广告策划书案例,wordpress编辑器添加商品,无锡企业网站制作一般多少钱本文介绍两种方法 1、经纬度矫正法 2、棋盘格矫正法 一、经纬度矫正法 1、算法说明 经纬度矫正法#xff0c; 可以把鱼眼图想象成半个地球#xff0c; 然后将地球展开成地图#xff0c;经纬度矫正法主要是利用几何原理#xff0c; 对图像进行展开矫正。 经过P点的入射光线… 本文介绍两种方法 1、经纬度矫正法 2、棋盘格矫正法 一、经纬度矫正法 1、算法说明 经纬度矫正法 可以把鱼眼图想象成半个地球 然后将地球展开成地图经纬度矫正法主要是利用几何原理 对图像进行展开矫正。 经过P点的入射光线没有透镜的话本应交于相机成像平面的e点。然而经过鱼眼相机的折射光线会交于相机成像平面的d点就产生了畸变因此畸变图像整体上呈现出像素朝图像中心点聚集的态势。         而去畸变就是将折射到d点的点重新映射回到e点因此去畸变之后的图像与原始的鱼眼图像相比仿佛是把向心聚集的像素又重新向四周铺展开来。        详细的推导流程及公式见地址AVM环视系统——鱼眼相机去畸变算法 - 知乎 2、 代码 import math from PIL import Imageim Image.open(/Users/Fisheye_photo-600x600.jpg) im.show()width, high im.size sqrt_len min(width, high) im im.transform((sqrt_len, sqrt_len),Image.EXTENT,((width-sqrt_len)/2, (high-sqrt_len)/2, sqrt_len(width-sqrt_len)/2, sqrt_len(high-sqrt_len)/2)) width high sqrt_lenidata im.getdata() odata []alpha math.pi/2out_high round(high * math.tan(alpha/2)) out_width round(width * math.tan(alpha/2)) out_radius round(high * math.tan(alpha/2)) out_center_x out_width / 2 out_center_y out_high / 2out_bl_x 0 out_br_x out_width - 1 out_bt_y 0 out_bb_y out_high - 1out_bl_cx out_bl_x - out_center_x out_br_cx out_br_x - out_center_x out_bt_cy out_bt_y - out_center_y out_bb_cy out_bb_y - out_center_ysrc_radius round(high * math.sin(alpha/2)) src_center_x width / 2 src_center_y high / 2for i in range(0, high * width):ox math.floor(i / out_width)oy i % out_highcx ox - out_center_x;cy oy - out_center_y;out_distance round(math.sqrt(pow(cx, 2) pow(cy, 2)))theta math.atan2(cy, cx)if (-math.pi/4 theta math.pi/4):bx out_radius * math.cos(math.pi/4)by bx * math.tan(theta)elif (math.pi/4 theta math.pi*3/4):by out_radius * math.sin(math.pi/4)bx by / math.tan(theta)elif (-math.pi*3/4 theta -math.pi/4):by out_radius * math.sin(-math.pi/4)bx by / math.tan(theta)else:bx out_radius * math.cos(-math.pi*3/4)by bx * math.tan(theta)bdy_distance round(math.sqrt(pow(cx, 2) pow(cy, 2)))src_distance src_radius * bdy_distance / out_radiussrc_x round(src_center_x math.cos(theta) * src_distance)src_y round(src_center_y math.sin(theta) * src_distance)src_idx src_x*width src_y if(0 src_idx high*width):odata.append(idata[src_idx])else:odata.append((0,0,0))om Image.new(RGB, (high, width)) om.putdata(odata) om.show() 3、代码及图片地址GitHub - duducosmos/defisheye: Fast Corrects for fisheye distortion in an image. 二、棋盘格矫正方法 1、算法说明 利用棋盘格进行标定 然后计算鱼眼镜头的畸变系数以及内参 opencv中自带有fisheye模块 可以直接根据棋盘格标定结果采用cv2.fisheye.calibrate计算畸变系数以及内参 然后使用cv2.fisheye.initUndistortRectifyMap函数计算映射矩阵 最后根据映射矩阵 使用cv2.remap进行矫正。 2、代码 import cv2 import numpy as np import math import time# 鱼眼有效区域截取 def cut(img):img_gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)(_, thresh) cv2.threshold(img_gray, 20, 255, cv2.THRESH_BINARY)contours, hierarchy cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)cnts sorted(contours, keycv2.contourArea, reverseTrue)[0]x,y,w,h cv2.boundingRect(cnts)r max(w/ 2, h/ 2)# 提取有效区域img_valid img[y:yh, x:xw]return img_valid, int(r)# 鱼眼矫正 def undistort(src,r):# r 半径 R: 直径R 2*r# Pi: 圆周率Pi np.pi# 存储映射结果dst np.zeros((R, R, 3))src_h, src_w, _ src.shape# 圆心x0, y0 src_w//2, src_h//2for dst_y in range(0, R):theta Pi - (Pi/R)*dst_ytemp_theta math.tan(theta)**2for dst_x in range(0, R):# 取坐标点 p[i][j]# 计算 sita 和 fiphi Pi - (Pi/R)*dst_xtemp_phi math.tan(phi)**2tempu r/(temp_phi 1 temp_phi/temp_theta)**0.5tempv r/(temp_theta 1 temp_theta/temp_phi)**0.5if (phi Pi/2):u x0 tempuelse:u x0 - tempuif (theta Pi/2):v y0 tempvelse:v y0 - tempvif (u0 and v0 and u0.5src_w and v0.5src_h):dst[dst_y, dst_x, :] src[int(v0.5)][int(u0.5)]# 计算在源图上四个近邻点的位置# src_x, src_y u, v# src_x_0 int(src_x)# src_y_0 int(src_y)# src_x_1 min(src_x_0 1, src_w - 1)# src_y_1 min(src_y_0 1, src_h - 1)## value0 (src_x_1 - src_x) * src[src_y_0, src_x_0, :] (src_x - src_x_0) * src[src_y_0, src_x_1, :]# value1 (src_x_1 - src_x) * src[src_y_1, src_x_0, :] (src_x - src_x_0) * src[src_y_1, src_x_1, :]# dst[dst_y, dst_x, :] ((src_y_1 - src_y) * value0 (src_y - src_y_0) * value1 0.5).astype(uint8)return dstif __name__ __main__:t time.perf_counter()frame cv2.imread(../imgs/pig.jpg)cut_img,R cut(frame)result_img undistort(cut_img,R)cv2.imwrite(../imgs/pig_nearest.jpg,result_img)print(time.perf_counter()-t) 效果图 3、代码地址 https://github.com/HLearning/fisheye 三、总结比对两个算法 本人用两个算法对一张图像进行拉直发现经过经纬度矫正算法生成的图像原作者裁剪掉了边缘部分见下图效果图中间黑框内的图像是经过“经纬度矫正法”得到的效果图外面的大图是用“棋盘格矫正法”得到的效果图 为了更直观更改了图像的透明度可以看出两个算法的效果还是多少有些差别的。 其实两个算法的边缘部分都被严重拉伸丢不丢掉看适用场景和个人需要吧。 四、知识拓展 立体标定 算法说明 坐标映射建立,各区域的角点都有一维世界坐标为0对应图5中三幅子图像分别为Y0X0Z0。根据棋盘方格边长以及与世界坐标原点间隔的方格数可得到所有角点的世界坐标。从而建立起二维图像坐标与三维世界坐标的一一映射用于模型参数的求解。 参考地址采用立体标定板的鱼眼相机快速标定方法_真空技术_新闻动态_深圳市鼎达信装备有限公司 基于双经度模型的鱼眼图像畸变矫正方法 基于双经度模型的鱼眼图像畸变矫正方法 - 百度文库
http://www.hkea.cn/news/14540128/

相关文章:

  • 成都淮州新城建设投资有限公司网站小小影院 电视剧免费
  • 泉港区住房和城乡规划建设局网站wordpress插件video playe
  • 小题狂做+官方网站王占山将军是什么军衔
  • 网站开发人员需要什么要求gta5买资产网站在建设
  • 对网站建设更新情况的通报我做网站价格
  • 宁波建网站哪家值得信赖酒店网站的规划与建设
  • 如何查看网站的死链接商城版网站建设
  • 湖南响应式网站哪家好南做网站
  • 网站怎么做谷歌推广北京网站设计知名乐云seo
  • 鹰潭门户网站建设费用电商模式有哪几种
  • 网站的建设框架iis网站asp.net部署
  • 做网站下一页400网站推广
  • 网站开发的前后端是什么岳阳公交优化
  • 网站建设规范管理工作站群
  • 临沂手机网站信息推广技术公司电话号码有做二手厨房设备的网站吗
  • 福州网站搜索引擎优化wordpress设计博客
  • 建站平台取名字wordpress 插件哪里
  • cms建站是什么网站建设汇报 安全保障
  • 在哪个网站做失业分解安徽省驻房城乡建设官方网站
  • 银川网站开发公司joomla3.8与wordpress
  • 网站建设86215软件系统网站建设
  • 网站的技术维护一般要做些什么怎样用模块做网站
  • 朝阳网站建设培训新浪邮箱登录入口
  • 网站权限设计简单的网页设计源代码
  • 无锡市住房和城乡建设局网站建设集团工程有限公司
  • 线上问诊网站建设网站怎么做落款
  • 建网站语言打广告去哪个平台免费
  • 企业网站备案信息查询上外国网站用什么dns
  • 万年历网站做通栏网站
  • 阳江网红酒店无边泳池seo网络优化专员是什么意思