特别感谢:本文是我在博主元气少女缘结神的博客鱼眼图像经度坐标校正(2D)
的学习笔记,主要是通过python实现。

1.python 程序

# -*- coding: utf-8 -*-
from __future__ import division
import cv2
import numpy as np
import math
# 读取鱼眼图片
# img = cv2.imread("fisheyetest1.jpg")
img = cv2.imread("./TestImages/roma.jpg")
# 设置灰度阈值
T = 140# 转换为灰度图片
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 提取原图大小
rows, cols = img.shape[:2]
print(rows, cols)# 从上向下扫描
for i in range(0, rows, 1):for j in range(0, cols, 1):if img_gray[i, j] >= T:if img_gray[i + 1, j] >= T:top = ibreakelse:continuebreak
print('top =', top)# 从下向上扫描
for i in range(rows - 1, -1, -1):for j in range(0, cols, 1):if img_gray[i, j] >= T:if img_gray[i - 1, j] >= T:bottom = ibreakelse:continuebreak
print('bottom =', bottom)# 从左向右扫描
for j in range(0, cols, 1):for i in range(top, bottom, 1):if img_gray[i, j] >= T:if img_gray[i, j + 1] >= T:left = jbreakelse:continuebreak
print('left =', left)# 从右向左扫描
for j in range(cols - 1, -1, -1):for i in range(top, bottom, 1):if img_gray[i, j] >= T:if img_gray[i, j - 1] >= T:right = jbreakelse:continuebreak
print('right =', right)# 计算有效区域半径
R = max((bottom - top) / 2, (right - left) / 2)
print('R =', R)# 提取有效区域
img_valid = img[top:int(top + 2 * R), left:int(left + 2 * R)]
cv2.imwrite('./TestResults/result.jpg', img_valid)#经度矫正法
m, n, k = img_valid.shape[:3]
print('m,n,k',m,n,k)
result = np.zeros((m,n,k))
Undistortion = []
x = n/2
y = m/2
for u in range(m):for v in range(n):i = uj = round(math.sqrt(R ** 2 - (y - u) ** 2) * (v - x) / R + x)if (R ** 2 - (y - u) ** 2 < 0):continueresult[u,v,0]=img_valid[i,j,0]result[u,v,1]=img_valid[i,j,1]result[u,v,2]=img_valid[i,j,2]
Undistortion = np.uint8(result)# 显示图片
cv2.namedWindow("yuantu", 0)
cv2.resizeWindow("yuantu", 640, 480)
cv2.imshow("yuantu", img)cv2.namedWindow("result", 0)
cv2.resizeWindow("result", 640, 480)
cv2.imshow("result", Undistortion)
cv2.waitKey(0)

2.原图

3.效果图

基于经度坐标校正鱼眼图像---python实现相关推荐

  1. 基于经度坐标校正鱼眼图像

    最近开始鱼眼图像校正方面的研究,在这个过程中阅读博主元气少女缘结神的相关博客让我受益匪浅,在此对她表示感谢,另外所有代码在Github. 提取有效区域 在研究中仅仅考虑圆形的鱼眼图像,其他形状,如长方 ...

  2. 鱼眼图像畸变校正matlab,鱼眼镜头畸变校正算法的设计

    王赛男 刘涛 左震宇 摘   要:鱼眼镜头的拍摄角度大,成像角度宽,但是在进行图像采集和成像的过程中存在大量畸变,直接使用采集而来的图像很难满足实际需求,因此需要对图像进行后续处理.本文根据摄像机参数 ...

  3. 鱼眼校正c语言算法,一种鱼眼图像逆向经纬映射的快速校正算法

    1. 引言 鱼眼镜头因其焦距短,视场大,拍摄图像信息量大等优点,在安防监控.360度汽车成像仪等领域中得到广泛应用.但鱼眼镜头在获得大视场的同时,会产生严重的图像畸变问题 [1] [2] .通过鱼眼镜 ...

  4. 鱼眼校正c语言算法,一种简单而精确的鱼眼图像校正算法研究

    舒旭 摘 要: 针对鱼眼图像的校正提出了一种有效区域提取算法,并在鱼眼图像的球面物投影平面展开时与目标半立方体的校正平面建立线性映射.实验结果表明,该算法能有效地提取鱼眼图像轮廓的有效区域,同时半立方 ...

  5. 【图像提取】基于matlab鱼眼图像有效区域提取【含Matlab源码 2186期】

    一.鱼眼图像 1 鱼眼图像研究 随着信号处理和图像处理技术的发展,基于鱼眼全景监控摄像头的视觉处理技术得到快速发展,中国已于2013年底发射"嫦娥三号",搭载的"玉兔号& ...

  6. python鱼眼图像识别_图像变换之矫正---鱼眼图像的矫正简介

    概论: ZD鱼眼图像变形校正算法,理论上相对比较简单,各种具体典型算法也 存在一定的不足.球面坐标定位展开算法是一种粗略的校正方法,最终的处理效 果不够理想.多项式坐标变换算法是一种典型的校正算法,针 ...

  7. 图像处理--鱼眼图像

    鱼眼镜头--最开始(1919)是源于摄影的需求--因为鱼眼图像存在几何畸变>>>鱼眼校正的需求 发展: 装满水的针孔摄像机>>>半球形玻璃>>>在 ...

  8. 鱼眼图像的校正(Python实现)

    问题描述 本文承接上文<鱼眼图像提取有效区域>,链接:https://blog.csdn.net/Megurine_Luka_/article/details/110563049 相对于常 ...

  9. 鱼眼图像校正(球面等距投影模型)

    为了真正的理清鱼眼图像校正的原理,查阅了很多的资料,本文主要从以下几个方面详细阐述基于球面透视投影等距模型的鱼眼图像校正算法. 1,鱼眼相机的构造原理. 2,透视投影. 3,等距投影算法 鱼眼相机的构 ...

最新文章

  1. servlet生命周期
  2. python安装numpy-Python使用pip安装Numpy模块
  3. Vue - Markdown编辑器
  4. micropython 网络驱动_network_网卡驱动
  5. 今年第一个项目来说NET的中间语言
  6. 剖析CWE视图的层次定义和解析方式
  7. AI 是中性的技术,如何用它更好地为人类服务
  8. JS 使用正则表达式参考,分组捕获,遍历输出所有匹配结果
  9. 2006年度中国管理软件行业评选
  10. button加下划线
  11. android手机通过wifi控制数码管,淫技:android无屏操作之adb操控wifi
  12. [论文分享] Stegozoa: Enhancing WebRTC Covert Channels with Video Steganography for Internet Censorship
  13. WebDAV之葫芦儿·派盘+Ever play播放器
  14. 导出excel 并且处理长数字,处理科学计数法,以文本形式存储的数字
  15. 算法的时间复杂度和空间复杂度总结
  16. 将多个文件夹下内容合并到一个文件夹下
  17. 2021-2022学年广州市南武中学七年级第一学期期中考试英语试题
  18. 激辩产业热点 | 6位大咖如何看待中国氢能和燃料电池前路?
  19. c mysql datasource_DataSource(mysql/oracle) - 随笔分类 - 我爱si搬砖 - 博客园
  20. iOS 识别车辆vin码方法汇总,免费并且效果极佳识别速度极快OCR识别VIN码

热门文章

  1. Laplace变换性质
  2. 因果推断笔记——因果图建模之Uber开源的CausalML(十二)
  3. sql server 统计表信息
  4. 响应式导航(从水平到垂直)的分析与实现
  5. python生成随机数列表
  6. error: ‘integer_sequence’ is not a member of ‘std’
  7. PHP导出Excel文件时导出列的数字长度太长时显示不完整或者乱码显示
  8. dinic算法 c 语言,网络流入门—用于最大流的Dinic算法
  9. Mybatis配置Mapper踩过的坑
  10. python拆分excel文件