图像像素

opencv图像轮廓

六月ゝ 毕业季﹏ 提交于 2020-04-08 07:06:11
最小外接圆 函数 cv2.minEnclosingCircle() 可以帮我们找到一个对象的外切圆。它是所有能够包括对象的圆中面积最小的一个。 案例:现有下面这样一张图片,要求将图片中心的花朵标记出来。 代码: import numpy as np import cv2 as cv img=cv.imread("image.jpg",0) #为了显示方便,这里将图片进行缩放 x,y=img.shape img=cv.resize(img,(y//2,x//2)) #将图片二值化,由于前景物体是黑色的,因此在二值化时采用cv.THRESH_TOZERO_INV这种方式 ret,thresh=cv.threshold(img,127,255,cv.THRESH_TOZERO_INV) #寻找图片中的轮廓,mode=cv.RETR_EXTERNAL,这是为了寻找最外层的轮廓 im,contour,hierarchy=cv.findContours(thresh,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE) #cv.minEnclosingCircle函数的参数要求是ndarray类型,因此这里将找到的 # 轮廓中的所有的点存放在一个列表中,然后使用这个列表创建数组 point_list=[] for i in contour: for j in i:

使用libjpeg进行图片压缩

空扰寡人 提交于 2020-04-07 21:26:25
简介 由于工作原因,boss下达的任务就大概说了对图片进行压缩寻找比较合理的方式,还举了一个项目中的坑,就是系统原生的Bitmap.compress设置质量参数为100生成图片会变大的坑。所以我打算用一点时间研究研究Bitmap在内存和外存中的情况。首先需要对图片进行压缩,大家都知道图片是Android里面一个大坑,具体的问题有: OOM,一不留神就用OOM来冲冲喜,所以网上就有了很多解决oom问题的建议,但是由于网友的水平不一也导致建议参差不齐。(内存) 图片压缩再加载失真严重,或者压缩率不够达不到项目要求的效果。(外存) 那我今天就要解决的就是通过今天查阅的资料和自己的判断,还有实践归档一下图片在Android上的问题。并且给出自己解决图片压缩问题的解决方案和实际操作。 1、为什么Android上的图片就不如IOS上的? libjpeg是广泛使用的开源JPEG图像库,安卓也依赖libjpeg来压缩图片。但是安卓并不是直接封装的libjpeg,而是基于了另一个叫Skia的开源项目来作为的图像处理引擎。Skia是谷歌自己维护着的一个大而全的引擎,各种图像处理功能均在其中予以实现,并且广泛的应用于谷歌自己和其它公司的产品中(如:Chrome、Firefox、 Android等)。Skia对libjpeg进行了良好的封装,基于这个引擎可以很方便为操作系统、浏览器等开发图像处理功能。

Web移动开发基本概念

为君一笑 提交于 2020-04-07 20:44:11
前端是个很大的概念,我的理解是用户能够看到,直接接触到的层面都算是前端,比如IOS客户端界面,安卓客户端界面,网页界面,甚至PC/MAC 桌面端软件界面;现在最常见的说法一般是指Web前端,也就是针对于网页端开发的工作。 Web App就是以浏览器作为客户端的软件。比如你要写文档,一般会打开Office 2013之类的本地软件;但是你也可以选择在浏览器里输入一个网址,再比如用桌面客户端来收发邮件,但你也可以直接用浏览器登陆gmail亦或者QQ邮箱,直接把这个当客户端用。总之就是使用网页版代替本地软件。 Mobile Web App 当然就是指在手机端打开的Web App。 移动客户端的开发类型 Native App(原生APP),也就是完全使用移动设备系统语言写的客户端,iPhone iPad就是纯Object-C,安卓就是纯JAVA, 就是用户看到的界面,体验到的交互都是原生的。这是性能最棒的开发方式,但灵活性就没下面的好。 Web App, 这个就是在移动浏览器里打开的,纯HTML+CSS+JS,说白了就是个网页,只不过非常的富应用,就是在浏览器里打开的页面。。IOS支持可以在桌面创建访问的快捷方式,但是说到底还是打开Safari跑。。而且对设备硬件的接口什么的挺薄弱。 Hybrid App.[HTML5 in mobile devices] 这个还是第一次看到这个概念

实战级Stand-Alone Self-Attention in CV,快加入到你的trick包吧 | NeurIPS 2019

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-07 15:05:34
> 论文提出stand-alone self-attention layer,并且构建了full attention model,验证了content-based的相互关系能够作为视觉模型特征提取的主要基底。在图像分类和目标检测实验中,相对于传统的卷积模型,在准确率差不多的情况下,能够大幅减少参数量和计算量,论文的工作有很大的参考意义   来源:【晓飞的算法工程笔记】 公众号 论文: Stand-Alone Self-Attention in Vision Models 论文地址: https://arxiv.org/abs/1906.05909 Introduction   目前卷积网络的设计是提高图像任务性能的关键,而卷积操作由于平移不变性使其成为了图像分析的主力。受限于感受域的大小设定,卷积很难获取长距离的像素关系,而在序列模型中,已经能很好地用attention来解决这个问题。目前,attention模块已经开始应用于传统卷积网络中,比如channel-based的attention机制 Squeeze-Excite和spatially-aware的attention机制Non-local Network等。这些工作都是将global attention layers作为插件加入到目前的卷积模块中,这种全局形式考虑输入的所有空间位置,当输入很小时,由于网络需要进行大幅下采样

ICLR 2020 | 抛开卷积,multi-head self-attention能够表达任何卷积操作

感情迁移 提交于 2020-04-06 18:07:33
> 近年来很多研究将nlp中的attention机制融入到视觉的研究中,得到很不错的结果,于是,论文侧重于从理论和实验去验证self-attention可以代替卷积网络独立进行类似卷积的操作,给self-attention在图像领域的应用奠定基础 论文: On the Relationship between Self-Attention and Convolutional Layers 论文地址: https://arxiv.org/abs/1911.03584 论文代码: https://github.com/epfml/attention-cnn Introduction   transformer的提出对NLP领域的研究有很大的促进作用,得益于attention机制,特别是self-attention,会考虑词间的相似性,对当前词进行加权输出。受到词间关系学习的启发,self-attention也开始用于视觉任务中,但大都是attention和convonlution的结合。Ramachandran在19年的研究中,用full attention model达到了resnet baseline的精度,模型参数和计算量相比卷积网络减轻了不少   因此,论文主要研究self-attention layer在图片处理上是否能达到convolutional layer的效果

摄像头定位:ICCV2019论文解析

爱⌒轻易说出口 提交于 2020-03-29 07:54:29
摄像头定位: ICCV2019论文解析 SANet: Scene Agnostic Network for Camera Localization 论文链接: http://openaccess.thecvf.com/content_ICCV_2019/papers/Yang_SANet_Scene_Agnostic_Network_for_Camera_Localization_ICCV_2019_paper.pdf The code is available at: https://github.com/ sfu-gruvi-3dv/sanet_relocal_demo 摘要 提出了一种场景不可知的摄像机定位神经网络结构,模型参数和场景相互独立。尽管最近在基于学习的方法方面取得了进展,但大多数方法都需要对每个场景逐一进行训练,这不适用于 SLAM和机器人导航等在线应用,因为在这些应用中,模型必须建立在平面上。本文的方法学习建立分层的场景表示,并预测查询的密集场景坐标图给定任意场景的地面上的 RGB图像。利用预测出的场景坐标图可以估计出查询图像的 6D摄像机姿态。此外,稠密预测还可用于其他在线机器人和 AR应用,如避障。本文在室内和室外基准上证明了本文的方法的有效性和效率,实现了最先进的性能。 1. Introduction

数码相机常用CCD/CMOS尺寸对比

こ雲淡風輕ζ 提交于 2020-03-28 14:09:20
  数码相机的关键元件CCD或CMOS又称为“影像传感器”,其作用相当于感光胶片。CCD尺寸越大,采集光线的效果越好,画面记录的信息就越多,保留的细节也就越丰富,所以图像更完美漂亮。   CCD尺寸的大小与像素的多少有一定的联系,但是也不尽然。专业数码单反尼康的D2Hs,别看它像素只有410万,可CCD的尺寸却是23.5×15.7mm;而柯达的DX7590数码相机虽拥有500万像素,但CCD尺寸只有5.38×4.39mm,两块CCD面积相差近10倍。可以肯定地说,D2Hs拍出的图像质量要比柯达DX7590拍出的画面要好得多,而且图像越放大越能证明这一点。所以购买数码相机时,千万不要盲目追求高像素,还要看看它的CCD尺寸有多大!   目前CCD、CMOS最大尺寸(除120专用的数码后背)与35毫米传统胶片的底片一致,即24×36mm。所以又称为“全画幅”CCD。   大尺寸的CCD制作成本非常高,已经成为了数码相机(主要是数码单反相机)价格居高不下的主要颈瓶。   CCD和CMOS在制造上的主要区别主要是CCD是集成在半导体单晶材料上,而CMOS是集成在被称为金属氧化物的半导体材料上,工作原理没有本质的区别,都是利用感光二极管(photodiode)进行光电转换,这种转换的原理与太阳能电子计算机的太阳能电池效应相近,光线越强、电力越强;反之,光线越弱、电力也越弱

摄像头模组基础扫盲

China☆狼群 提交于 2020-03-28 12:14:43
手机摄像头常用的结构如下图37.1所示,主要包括镜头,基座,传感器以及PCB部分。 图37.1 CCM(compact camera module)种类 1.FF(fixed focus)定焦摄像头 目前使用最多的摄像头,主要是应用在30万和130万像素的手机产品。 2.MF(micro focus)两档变焦摄像头 主要用于130万和200万像素的手机产品,主要用于远景和近景,远景拍摄风景,近景拍摄名片等带有磁条码的物体。 3.AF(auto focus)自动变焦摄像头 主要用于高像素手机,具有MF功能,用于200万和300万像素手机产品。 4.ZOOM 自动数码变焦摄像头 主要用于更高像素的要求,300万以上的像素品质。 Lens部分 对于lens来说,其作用就是滤去不可见光,让可见光进入,并投射到传感器上,所以lens相当于一个带通滤波器。 CMOS Sensor部分 对于现在来说,sensor主要分为两类,一类是CMOS,一类是CCD,而且现在CMOS是一个趋势。 对于镜头来讲,一个镜头只能适用于一种传感器,且一般镜头的尺寸应该和sensor的尺寸一致。 对于sensor来说,现在仍然延续着Bayer阵列的使用,如下图37.2所示,图37.3展示了工作流程,光照à电荷à弱电流àRGB信号àYUV信号。 图37.2 图37.3 图37.4 图37.4展示了sensor的工作原理

CCD和CMOS的差别

我的未来我决定 提交于 2020-03-28 12:07:58
单从感光器电子技术上来说,CCD比CMOS更先进,理论成像上有优势,但是最近几年CMOS却发展更好,使得很多高端数码单反采用CMOS传感器,下面来看看CCD和CMOS的技术知识: CCD和CMOS传感器是目前最常见的数字图像传感器,广泛应用于数码相机、数码摄像机、照相手机和摄像头等产品上。两者在结构、性能和技术上均不尽相同,在此我将两者作一个简单的比较,使广大读者对CCD和CMOS能有一个比较初步的认识,在选购相关产品时也能做到心中有数。 CCD与CMOS传感器的结构比较 CCD(Charge Coupled Device),即“电荷耦合器件”,是一种感光半导体芯片,用于捕捉图形,但CCD没有能力记录图形数据,也没有能力永久保存,所有图形数据都会不停留地送入一个模数转换器,一个信号处理器以及一个存储设备。1970美国贝尔实验室发明了CCD。二十年后,人们利用这一技术制造了数码相机,将影像处理行业推进到一个全新领域。 CMOS(Complementary Metal Oxide Semiconductor),即“互补金属氧化物半导体”。它是计算机系统内一种重要的芯片,保存了系统引导所需的大量资料。有人发现,将CMOS加工也可以作为数码相机中的感光传感器,其便于大规模生产和成本低廉的特性是商家们梦寐以求的。 CCD和CMOS在制造上的主要区别主要是CCD是集成在半导体单晶材料上

OpenGL学习

瘦欲@ 提交于 2020-03-27 09:06:06
1. 常识 static GLint vertices[] = { 25, 25, 100, 325, 175, 25, 175, 325, 250, 25, 325, 325 };//这些坐标,画的时候都是相对于屏幕右下角 PS:如果修改了窗口的内容,就需要调用glutPostRedisplay(); PS:窗口在创建的时候就发生了窗口大小的改变,所以要调用glutReshapeFunc, 可以看到每次窗口变化都调用了其中的代码 2. OpenGL简介 PS:接口包含函数700多个 PS:OpenGL也没有提供包含三维物体的高级函数,只能通过使用为数不多基本图元(点、直线、多边形)来创建 PS:OpenGL的工具库(GLU)提供了许多建模的功能,例如二次曲面以及Nurbs曲线和曲面 1.1 OpenGL对场景中图形渲染的步骤 1.创建几何图元,创建图形,建立数学描述 2.在三维空间中排列物体,并选择观察符合场景的有利视角 3.计算所有物体的颜色( 可以由 程序决定、光照和物理纹理贴图 , 或者是三者的结合 ) 4.把物体的数学描述和物体的相关颜色信息转换成屏幕上的像素 PS:OpenGL也是C/s的模式 2.1 几个简单的概念 PS:渲染,是计算机根据 模型 创建图形的过程 模型,是根据 几何图元 创建的,也叫物体 几何图元 ,包括点、直线和多边形,他们是通过顶点指定的 像素-