Image Processing
MetaSmiles
智能机器人 视觉slam 计算机视觉,软件开发
展开
-
c语言实践-图像缩放
简单代码实现:#include <stdio.h>#include <stdlib.h>#include <memory.h>#define HEIGHT 1080#define WIDTH 1440int is_in_array(short x, short y, short height, short width){ if (x >= 0 && x < width && y >= .原创 2021-03-05 02:00:13 · 1901 阅读 · 5 评论 -
张正友标定详解推荐
https://zhuanlan.zhihu.com/p/87334006?from_voters_page=truehttps://www.cnblogs.com/wangguchangqing/p/8335131.htmlhttps://blog.csdn.net/humanking7/article/details/44756235原创 2020-04-23 17:48:41 · 288 阅读 · 1 评论 -
OpenCV Mat数据类型及位数总结
前言 opencv中很多数据结构为了达到內存使用的最优化,通常都会用它最小上限的空间来分配变量,有的数据结构也会因为图像文件格式的关系而给予适当的变量,因此需要知道它们声明的空间大小来配置适当的变量。一 般标准的图片,为RGB格式它们的大小为8bits格式,范围为0~255,对一个int空间的类型来说实在是太小,整整浪费了24bits的空间,假设有个640*480的BMP文件空间存储內存...转载 2019-04-07 21:51:55 · 236 阅读 · 0 评论 -
OpenCV基本结构(Point、Size、Rect等)
1.PointPoint:2維整數點類別,通常用於影像的座標點,成員有x和y,要是輸入浮點數的話,則四捨五入取整數,以下為建構式和最基本的兩種賦值方法:Point2f:2維浮點數點類別,通常用於幾何計算,用法和Point雷同,只是x和y是浮點數。Point3i、Point3f、Point3d代表3維點x、y、z,而成員型態分別為int、float、double。Point(in...转载 2019-04-06 14:50:57 · 1356 阅读 · 0 评论 -
libpng warning: Application built with libpng-1.2.54 but running with 1.6.34
1、问题原因:opencv的libpng库和anaconda的libpng库不统一,anaconda的是1.6.27,然后opencv是1.5.13。opencv在make的时候连接到了系统的libpng库了2、解决方法方法一:编译OpenCV时,在执行cmake命令时加上参数: -D BUILD_PNG=ON即:cmake -D BUILD_PNG=ON -D CMAKE_BU...原创 2019-03-27 04:12:50 · 2212 阅读 · 1 评论 -
OpenCV插入文本和字体设置相关函数
https://blog.csdn.net/sinat_34707539/article/details/51909944https://blog.csdn.net/qq_33882671/article/details/76026522原创 2019-03-10 21:48:59 · 182 阅读 · 0 评论 -
vs 2013 + opencv3.1 fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突。
64位win7下,安装的VS2008编译的时候报错为:fatalerrorLNK1112:模块计算机类型“X86”与目标计算机类型“x64”冲突。解决方法:右键项目名,点击属性,弹出项目属性页,找到链接器----高级,修改右侧的目标计算机,选择有X64的那个选项。...原创 2019-12-12 00:35:53 · 172 阅读 · 0 评论 -
一种新的直线段检测算法---LSD:a Line Segment Detector
https://blog.csdn.net/polly_yang/article/details/10085401https://blog.csdn.net/u012566751/article/details/54602958原创 2019-02-27 21:58:17 · 753 阅读 · 0 评论 -
opencv copyto 与clone
copyTo 也是深拷贝,但是否申请新的内存空间,取决于dst矩阵头中的大小信息是否与src一至,若一致则只深拷贝并不申请新的空间,否则先申请空间后再进行拷贝.clone 是完全的深拷贝,在内存中申请新的空间= 是直接赋值,指示引用,完全一样用法:Mat A;Mat B = A.clone() //clone 是完全的深拷贝,在内存中申请新的空间,与A独立Mat C;...原创 2018-10-24 17:03:13 · 403 阅读 · 0 评论 -
VS2010 opencv:imread 路径错误
imread("D:\TestData\1-1.jpg"); 错误信息:opencv_orb.exe 中的 0x75dac54f 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x002dee30 处的 cv::Exception。解决方案: 1.imread("D:/TestData/1-2.jpg"); 2.imread("D:\\TestData\\1...原创 2018-10-24 16:55:28 · 458 阅读 · 0 评论 -
VC中“其原因可能是堆被损坏,这也说明*.exe中或它所加载的任何DLL中有bug”的分析
找了一下午错误原因,整理一下大神的资料原因分析来自百度空间:DLL和exe里的malloc和free不能混用[hi.baidu.com/huhejun/item/988e41361d0a95c7392ffab5];来自CSDN论坛:Dll分配的内存块,应用释放的问题;来自CSDN博文:VC运行时库/MD、/MDd、/MT、/MTd说明 - holybin的专栏。综合以上几个地方的...转载 2018-10-24 16:51:35 · 587 阅读 · 0 评论 -
fourcc = cv2.cv.FOURCC(*'XVID') AttributeError: module 'cv2' has no attribute 'cv' FOURCC
python+opencv读取视频,调用摄像头碰到了一个代码错误,如下:python文件:import cv2import numpy as npcap = cv2.VideoCapture(0)# Define the codec and create VideoWriter objectfourcc = cv2.VideoWriter_fourcc(*'XVID')ou...原创 2018-10-22 15:12:55 · 8197 阅读 · 0 评论 -
SIFT SUFT FAST ORB
SIFTScale Invariant Feature Transform,尺度不变特征变换。SIFT特征对旋转、尺度缩放、亮度变化等保持不变性,是一种非常稳定的局部特征。SIFT算法主要有以下几个步骤:高斯差分金字塔的构建 使用组和层的结构构建了一个具有线性关系的金字塔(尺度空间),这样可以在连续的高斯核尺度上查找图像的特征点;另外,它使用一阶的高斯差分来近似高斯的拉普拉斯核,大大...原创 2018-09-27 10:17:09 · 1366 阅读 · 0 评论 -
opencv版本共存方法
下载官网opencv2.4.11 https://opencv.org/opencv-2-4-11-is-out.html进入解压后的opencv安装包,新建目录,目录名为build,并进入该目录 1 mkdir build && cd build 输入命令 1 2 3 4 su...原创 2018-09-07 13:10:31 · 544 阅读 · 0 评论 -
opencv中imread第二个参数的含义
Flags指定了所读取图片的颜色类型CV_LOAD_IMAGE_ANYDEPTH返回图像的深度不变。CV_LOAD_IMAGE_COLOR总是返回一个彩色图。CV_LOAD_IMAGE_GRAYSCALE总是返回一个灰度图。...原创 2018-09-05 22:49:47 · 2156 阅读 · 0 评论 -
图像格式
一般的图像文件格式使用的是 Unsigned 8bits,CvMat矩阵对应的参数类型就是CV_8UC1,CV_8UC2,CV_8UC3。(最后的1、2、3表示通道数,譬如RGB3通道就用CV_8UC3)而float 是32位的,对应CvMat数据结构参数就是:CV_32FC1,CV_32FC2,CV_32FC3...double是64bits,对应CvMat数据结构参数:CV_64F...原创 2018-09-13 15:37:18 · 191 阅读 · 0 评论 -
opencv Mat
一、矩阵Mat I,img,I1,I2,dst,A,B;double k,alpha;Scalar s;//Scalar 是一个结构体,常用来存储像素,比如Scalar s;s=cvGet2D(pImg,x,y);s.val[0],s.val[1],s.val[2]就是对应的图像BGR的值1.加法I=I1+I2;//等同add(I1,I2,I);add(I1,I2,dst...转载 2019-07-29 20:48:13 · 180 阅读 · 0 评论 -
Python3+OpenCV3图像处理(八)—— 图像直方图
直方图简介:图像的直方图是用来表现图像中亮度分布的直方图,给出的是图像中某个亮度或者某个范围亮度下共有几个像素.还不明白?就是统计一幅图某个亮度像素数量.比如对于灰度值12,一幅图里面有2000 个像素其灰度值为12,那么就能够统计12这个亮度的像素为2000个,其他类推。参考:https://blog.csdn.net/xierhacker/article/details/52605308 ...转载 2018-10-30 20:32:40 · 615 阅读 · 0 评论 -
Python+OpenCV图像处理(十五)—— 圆检测
简介:1.霍夫圆变换的基本原理和霍夫线变换原理类似,只是点对应的二维极径、极角空间被三维的圆心和半径空间取代。在标准霍夫圆变换中,原图像的边缘图像的任意点对应的经过这个点的所有可能圆在三维空间用圆心和半径这三个参数来表示,其对应一条三维空间的曲线。对于多个边缘点,点越多,这些点对应的三维空间曲线交于一点的数量越多,那么他们经过的共同圆上的点就越多,类似的我们也就可以用同样的阈值的方法来判断一个...转载 2018-11-02 20:36:48 · 7372 阅读 · 2 评论 -
Python3+OpenCV3图像处理(十四)—— 直线检测
简介:1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。主要用来从图像中分离出具有某种相同特征的几何形状(如,直线,圆等)。最基本的霍夫变换是从黑白图像中检测直线(线段)。2.Hough变换的原理是将特定图形上的点变换到一组参数空间上,根据参数空间点的累计结果找到一个极大值对应的解,那么这个解就对应着要寻找...转载 2018-11-02 20:36:39 · 2394 阅读 · 0 评论 -
Python3+OpenCV3图像处理(十三)—— Canny边缘检测
简介:1.Canny边缘检测算子是John F. Canny于 1986 年开发出来的一个多级边缘检测算法。2.Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:好的检测- 算法能够尽可能多地标识出图像中的实际边缘。好的定位- 标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。最小响应- 图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。...转载 2018-10-30 20:33:16 · 346 阅读 · 0 评论 -
Python3+OpenCV3图像处理(十二)—— 图像梯度
简介:图像梯度可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导。Sobel算子是普通一阶差分,是基于寻找梯度强度。拉普拉斯算子(二阶差分)是基于过零点检测。通过计算梯度,设置阀值,得到边缘图像。以下各种算子的原理可参考:https://blog.csdn.net/poem_qianmo/article/details/25560901一、Sobel算子代码如下:...转载 2018-10-30 20:33:10 · 2277 阅读 · 0 评论 -
Python3+OpenCV3图像处理(十一)—— 图像金字塔
简介:图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说,图像金字塔就是用来进行图像缩放的。进行图像缩放可以用图像金字塔,也可以使用resize函数进行缩放,后者效果更好。这里只是对图像金字塔做一些简单了解。两种类型的金字塔:①高斯金字塔:用于下采样。高斯金字塔是最基本的图像塔。原理:首先将原图像作为最底层图像G0(高斯...转载 2018-10-30 20:32:54 · 417 阅读 · 0 评论 -
Python3+OpenCV3图像处理(十)—— 图像二值化
简介:图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。一、普通图像二值化代码如下:import cv2 as cvimport numpy as np#全局阈值def threshold_demo(image): gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY) #把输入...转载 2018-10-30 20:32:26 · 2449 阅读 · 0 评论 -
Python+OpenCV图像处理(九)—— 模板匹配
百度百科:模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。简单来说,模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域。工作原理:在带检测图像上,从左到右,从上向...转载 2018-10-30 20:32:18 · 1341 阅读 · 0 评论 -
Python3+OpenCV3图像处理(七)—— 滤波与模糊操作
过滤是信号和图像处理中基本的任务。其目的是根据应用环境的不同,选择性的提取图像中某些认为是重要的信息。过滤可以移除图像中的噪音、提取感兴趣的可视特征、允许图像重采样等等。频域分析将图像分成从低频到高频的不同部分。低频对应图像强度变化小的区域,而高频是图像强度变化非常大的区域。在频率分析领域的框架中,滤波器是一个用来增强图像中某个波段或频率并阻塞(或降低)其他频率波段的操作。低通滤波器是消除图像中高...转载 2018-10-30 20:32:07 · 2105 阅读 · 0 评论 -
注意!list和array是不同的
python中的list是python的内置数据类型,list中的数据类型不必相同的,而array的中的数据类型必须全部相同。 numpy中封装的array有很强大的功能,里面存放的都是相同的数据类型。 list代码如下:a=[[1,2],[1,2]] #二维列表print(a)b=a[1][1]print(b) 运行结果: [[1, 2], [1, 2]]...转载 2018-10-30 20:31:58 · 175 阅读 · 0 评论 -
Python3+OpenCV3图像处理(六)—— ROI与泛洪填充
一、ROIROI(region of interest),感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。代码如下:#进行图片截取、合并、填充import cv2 as cvsrc=cv.imread('E:\imageload\lena.jpg')cv.namedWindow('first_...转载 2018-10-29 19:06:45 · 291 阅读 · 0 评论 -
Python3+OpenCV3图像处理(五)—— 像素运算
最近在忙毕业设计,只能偶尔更新博客........一、像素的算术运算像素的算术运算涉及加减乘除等基本运算(要进行算术运算,两张图片的形状(shape)必须一样)代码如下:#像素的算术运算(加、减、乘、除) 两张图片必须shape一致import cv2 as cvdef add_demo(m1, m2): #像素的加运算 dst = cv.add(m1, ...转载 2018-10-29 19:03:28 · 334 阅读 · 0 评论 -
Python3+OpenCV3图像处理(四)—— 色彩空间
一、色彩空间的转换代码如下:#色彩空间转换import cv2 as cvdef color_space_demo(img): gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) #RGB转换为GRAY #这里的生成的gray图是单通道的 cv.imshow("gray", gray) hsv = cv.cvtColor(img...转载 2018-10-29 18:59:53 · 478 阅读 · 0 评论 -
Python3+OpenCV3图像处理(三)—— Numpy数组操作图片
一.改变图片每个像素点每个通道的灰度值(一)代码如下:#遍历访问图片每个像素点,并修改相应的RGBimport cv2 as cvdef access_pixels(image): print(image.shape) height = image.shape[0] width = image.shape[1] channels = image...转载 2018-10-29 18:54:07 · 1676 阅读 · 0 评论 -
Python3+OpenCV3图像处理(二)——打印图片属性、设置图片存储路径、电脑摄像头的调取和显示
一. 打印图片属性、设置图片存储路径代码如下:#打印图片的属性、保存图片位置import cv2 as cvimport numpy as np #numpy是一个开源的Python科学计算库def get_image_info(image): print(type(image)) #type() 函数如果只有第一个参数则返回对象的类型 在这里函数显示图...转载 2018-10-29 18:46:31 · 591 阅读 · 0 评论 -
python3+opencv3 图像处理(一)读取显示一张图片
先在此处先声明,后面学习python+opencv图像处理时均参考这位博主的博文https://blog.csdn.net/u011321546/article/category/7495016/2?,我只是复现和稍微修改一下代码,加深自己印象的同时也督促自己好好学习图像处理,在这里再一次感谢这位博主的博文。 配置好所有环境后,开始利用python3+opencv3进行图像处理第一...转载 2018-10-29 18:41:05 · 9516 阅读 · 1 评论 -
Python3+OpenCV3图像处理(十六)—— 轮廓发现
简介:轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓发现结果。代码如下:import cv2 as cvimport numpy as npdef contours_demo(image): dst = cv.GaussianBlur(image, (3, 3), 0) #高斯模糊去噪 gray = cv.cvtColor...转载 2018-11-02 20:36:56 · 1234 阅读 · 0 评论 -
Python3+OpenCV3图像处理(17)—— 图像增强
图像增强主要解决由于图像的灰度级范围较小造成的对比度较低的问题,目的就是将输出图像的灰度级放大到指定的程度,使得图像中的细节看起来增加清晰。对比度增强有几种常用的方法,如线性变换、分段线性变换、伽马变换、直方图正规化、直方图均衡化、局部自适应直方图均衡化等。1.灰度直方图在讲解图像增强的方法之前先来认识一下灰度直方图,灰度直方图是图像灰度级的函数,用来描述每个灰度级在图像矩阵中的像素个数或者...转载 2018-11-02 20:37:53 · 1505 阅读 · 0 评论 -
OpenCV膨胀、腐蚀、开闭运算
腐蚀和膨胀是最基本的形态学运算。腐蚀和膨胀是针对白色部分(高亮部分)而言的。膨胀就是对图像高亮部分进行“领域扩张”,效果图拥有比原图更大的高亮区域;腐蚀是原图中的高亮区域被蚕食,效果图拥有比原图更小的高亮区域。膨胀膨胀就是求局部最大值的操作,从图像直观看来,就是将图像光亮部分放大,黑暗部分缩小。#include<opencv2\opencv.hpp> #in...转载 2018-11-02 20:39:17 · 350 阅读 · 0 评论 -
关于计算机视觉的一些测试数据集和源码站点
以下是computer vision:algorithm and application计算机视觉算法与应用这本书中附录里的关于计算机视觉的一些测试数据集和源码站点,转自:http://blog.sina.com.cn/s/blog_7798183d0102v1fz.html 在http://szeliski.org/Book包含了更新的数据集和软件,请同样访问他。C.1 数据集一...转载 2018-11-29 20:43:15 · 302 阅读 · 0 评论 -
灰度、灰度级、分辨率、像素值;
1、像素点像素点是最小的图像单元,一张图片由好多的像素点组成。如下图 可以看到上述图片尺寸是500 * 338 的,表示图片是由一个500 * 338的像素点矩阵构成的,这张图片的宽度是500个像素点的长度,高度是338个像素点的长度,共有500 * 338 = 149000个像素点。2、像素把鼠标放在一个图片上,这个时候会显示尺寸和大小,这里的尺寸就是像素。3、...转载 2018-11-24 22:45:53 · 2550 阅读 · 0 评论 -
Python可视化库matplotlib(基础整理)
绘制基本曲线使用plot函数绘制函数曲线,可以调整plot函数参数配置曲线样式、粗细、颜色、标记等设置坐标轴(1.)spines移动坐标轴(2.)xlim方法设置坐标轴刻度取值范围(3.)xticks,yticks方法设置x,y轴的刻度标签值(4.)title方法设置标题,xlabel,ylabel方法设置坐标轴描述设置图片上的描述(1.)text方法设置图片上的文字描述和注解...转载 2018-11-14 22:23:36 · 384 阅读 · 0 评论 -
python中的np.random.normal
对应于numpy中:numpy.random.normal(loc=0.0, scale=1.0, size=None)参数的意义为:loc:float 此概率分布的均值(对应着整个分布的中心centre)scale:float 此概率分布的标准差(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高)size:int or tuple of ints ...原创 2018-11-14 21:55:39 · 3665 阅读 · 0 评论