图像处理(opencv)
阳光下的Smiles
生命在于运动,知识在于积累。
展开
-
图像格式导致halcon读取失败
Windows Bitmap (bmp),文件头:42 4D。PNG (png),文件头:89 50 4E 47。GIF (gif),文件头:47 49 46 38。JPEG (jpg),文件头:FF D8 FF。打开软件“notepad”使用16进制查看图片。halcon正常读取。但是opencv读取正常。3.批量修改文件后缀名。halcon读取异常。原创 2023-11-16 08:21:42 · 377 阅读 · 0 评论 -
opencv 矩阵运算
4.multiply两个数组的按元素比例缩放的乘积。5.矩阵转置transpose和t。2.元素乘法或者除法(mul)3.向量的点积(dot)原创 2023-08-18 08:41:42 · 1448 阅读 · 0 评论 -
Mask进行抠图
方法一:Mat Image=imread("D:\\cab.png");imshow("srcImage",Image);Mat roi1,roi2,Mask;//初始化0roi1=Mat::zeros(Image.size(),CV_8UC1);roi2=Mat::zeros(Image.size(),CV_8UC1);Mask=Mat::zeros(Image.size(),CV_8UC1);//thickness:-1表示填充circle(roi1,Point(278,240原创 2021-04-21 09:08:45 · 834 阅读 · 0 评论 -
HALCON-OpenCV-ROI绘制截取ROI图像
1.HALCON中ROI区域实现,图像截取read_image (Board, 'E:/Images/board.jpg')gen_circle (ROI_Circle, 252, 190, 17)gen_rectangle1 (ROI_Rect, 323, 356, 416, 490)gen_rectangle2 (ROI_RectPHi, 183, 240, rad(-46), 51, 20)gen_ellipse (ROI_Ellipse, 265, 417, rad(0), 43,原创 2020-06-15 21:45:26 · 2161 阅读 · 0 评论 -
OpenCV实现边缘匹配查找
参考自:https://www.codeproject.com/articles/99457/edge-based-template-matching实现具体步骤就不介绍:别人的代码是opencv老版本实现的,自己看着比较费劲,后面就想着自己重新实现一下,顺便熟悉下具体的整个步骤。利用晚上的时间断断续续好多天了,今天晚上终于调试完成了。别人的代码就不贴了,当时是花人民币在某宝找人在CSDN下载的。自己的代码:1.梯度和方向计算:Mat gx, gy;Sobel(grayTempl原创 2020-05-17 22:26:33 · 1981 阅读 · 0 评论 -
opencv主函数main中的参数说明
int main( int argc, char** argv ){ if( argc!=2 ) { help(); return 1; } string filename = argv[1]; if( filename.empty() ) { cout ret原创 2015-10-22 15:05:42 · 713 阅读 · 0 评论 -
光流金字塔calcOpticalFlowPyrLK
金字塔Lucas-Kanande光流C++: void calcOpticalFlowPyrLK(InputArray prevImg, InputArray nextImg, InputArray prevPts, InputOutputArraynextPts, OutputArray status, OutputArray err, Size winSize=Size(21,21原创 2015-10-14 10:23:18 · 22135 阅读 · 2 评论 -
Gunnar Farnebak的算法计算稠密光流
Computes a dense optical flow using the Gunnar Farneback’s algorithm.用Gunnar Farnebak的算法计算稠密光流C++: void calcOpticalFlowFarneback(InputArray prev, InputArray next, InputOutputArray flow,翻译 2015-12-16 20:49:53 · 2599 阅读 · 0 评论 -
图像的透视变换(opencv2实现)
#include #include #include #include using namespace std;using namespace cv; Point2f center(0,0); Point2f computeIntersect(Vec4i a, Vec4i b) { int x1 = a[0], y1原创 2015-11-04 22:06:48 · 3194 阅读 · 2 评论 -
图像拼接(类stitcher 用于图像拼接)
图像拼接类stitcher 拼接类stitcher 的头文件为:#include "opencv2/stitching/stitcher.hpp"1、Stitcher::createDefault使用默认参数创建一个拼接器C++: Stitcher Stitcher::createDefault(bool try_use_gpu=false)2、Stitcher::es原创 2015-11-03 20:07:32 · 3076 阅读 · 0 评论 -
方形检测---opencv2.4.11
// The "Square Detector" program.// It loads several images sequentially and tries to find squares in// each image#include "opencv2/core/core.hpp"#include "opencv2/imgproc/imgproc.hpp"#i原创 2016-06-04 11:18:06 · 934 阅读 · 1 评论 -
Background类提取前景物体然后保存为图片
#include#include #include #include #include #include #include using namespace std;using namespace cv;int main(){VideoCapture capture("E:/图片/bike.avi");if (!capture.isOpened())原创 2015-10-22 10:21:10 · 1068 阅读 · 0 评论 -
运动模板
运动模板构建函数C++: void updateMotionHistory(InputArray silhouette, InputOutputArray mhi, double timestamp, doubleduration)Parameters:silhouette – Silhouette mask that has non-zero pixe原创 2015-10-14 11:21:23 · 468 阅读 · 0 评论 -
跟踪算法(mean-shift和Camshift)
C++: int meanShift(InputArray probImage, Rect& window, TermCriteria criteria)Parameters:probImage – Back projection of the object histogram. See calcBackProject() for details.win原创 2015-10-14 11:04:41 · 1208 阅读 · 0 评论 -
给图像添加边界
给图像添加边界填充图像边界的两种方法:BORDER_CONSTANT: 使用常数填充边界 (i.e. 黑色或者 0)BORDER_REPLICATE: 复制原图中最临近的行或者列。官方例程(1)装载图像(2)由用户决定使用哪种填充方式。有两个选项:常数边界: 所有新增边界像素使用一个常数,程序每0.5秒会产生一个随机数更新该常数值。复制边界: 复制原原创 2016-12-23 23:00:54 · 1467 阅读 · 0 评论 -
仿射变换
仿射变换使用OpenCV函数 warpAffine 来实现一些简单的重映射.使用OpenCV函数 getRotationMatrix2D 来获得一个 旋转矩阵什么是仿射变换?一个任意的仿射变换都能表示为 乘以一个矩阵 (线性变换) 接着再 加上一个向量 (平移).综上所述, 我们能够用仿射变换来表示:旋转 (线性变换)平移 (向量加)缩放操作原创 2016-12-23 22:46:34 · 1222 阅读 · 0 评论 -
模板匹配(opencv2.4.11实现)
/*** @file MatchTemplate_Demo.cpp* @brief Sample code to use the function MatchTemplate* @author OpenCV team*代码摘抄自opencv2.4.13官方源码*/#include #include #include #include using原创 2016-11-01 22:04:19 · 1425 阅读 · 0 评论 -
视频跟踪分割运动中的物体
#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/video/background_segm.hpp"#include #include using namespace cv;static void help(){prin翻译 2015-10-08 09:51:20 · 1532 阅读 · 0 评论 -
从视频中抓拍图片
#include "opencv2/highgui/highgui.hpp"#include #include #include #include #include using namespace cv;using namespace std;int process(VideoCapture& capture){ int n = 0;翻译 2015-10-08 09:57:02 · 1861 阅读 · 0 评论 -
opencv2中的背景/前景分离(类BackgroundSubtractor)
class CV_EXPORTS_W BackgroundSubtractor: public Algorithmclass BackgroundSubtractorMOG : public BackgroundSubtractorclass BackgroundSubtractorMOG2 : public BackgroundSubtractor¶原创 2015-10-15 09:18:44 · 6190 阅读 · 0 评论 -
opencv2中文件读取时路径的设置
#include #include using namespace std;using namespace cv;int main(){Mat img1=imread("E:\\图片\\a9.jpg");Mat img2=imread("E:/图片/Rb.jpg");namedWindow("图1");namedWindow("图2");imshow("图1原创 2015-10-16 15:55:53 · 655 阅读 · 0 评论 -
通过opencv2把视频转化为图像帧
#include #include #include #include #include #define NUM_FRAME 300 void Video_to_image(char* filename){printf("------------- video to image ... ----------------n");//初始化一个视频文件捕捉器Cv原创 2015-10-18 20:26:34 · 1607 阅读 · 0 评论 -
opencv3版本在线参考文档
opencv3版本在线参考文档网址:http://docs.opencv.org/3.0-last-rst/search.html?q=imread&check_keywords=yes&area=default原创 2015-10-17 16:55:57 · 2757 阅读 · 1 评论 -
Ubuntu14.04配置opencv2.4.11开发环境
Ubuntu14.04配置opencv2.4.11开发环境opencv2.4.11的下载与编译安装参考:Ubuntu14.04系统安装Python+机器学习(二)1、库之前编译与安装后的opencv库在/usr/local/lib/目录下;opencv.pc位于/usr/local/lib/pkconfig/目录下。2、配置opencv的系统环境(1)将open原创 2017-01-07 22:16:02 · 792 阅读 · 0 评论 -
VS2013配置OpenCV2.4.13
VS2013配置OpenCV2.4.13一、环境变量设置(1)用户变量设置(2)系统环境变量设置二、应用程序配置库1.新建一个空项目添加源文件,通过“属性管理器”添加库路径2.vc++目录设置3.文件库添加到此配置完成原创 2017-12-22 12:27:54 · 815 阅读 · 0 评论 -
VS2017(32系统)配置OpenCV2.4.11
VS2017(32系统)配置OpenCV2.4.111.这里可以使用vc12进行配置。2.环境变量与库文件的配置可以参考VS2010配置opencv2.4.11(vc10).3.配置完成后,程序运行,会报错缺失msvcp120d.dll和msvcrd.dll两个链接库。原创 2017-09-17 20:46:23 · 1271 阅读 · 0 评论 -
特征检测和描述(SURF)
特征检测和描述(SURF)1、opencv文档SURF定义在#include 中SURF::SURFThe SURF extractor constructors.函数定义: C++: SURF::SURF() C++: SURF::SURF(double hessianThreshold, int nOctaves=4, int nOctaveLayers原创 2017-03-17 13:25:59 · 1001 阅读 · 0 评论 -
特征检测和描述(SIFT)
特征检测和描述(SIFT)SIFT(Scale Invariant FeatureTransform),SIFT摘自《Distinctive Image Features from Scale-Invariant Keypoints》这篇文章。Following are the major stages of computation used to generate the set原创 2017-03-17 13:15:43 · 1181 阅读 · 0 评论 -
人脸笑容检测(opencv官方例程)
人脸笑容检测(opencv官方例程)1、代码如下:#include "opencv2/objdetect/objdetect.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include #include #include #include原创 2017-03-17 10:01:32 · 3807 阅读 · 1 评论 -
HOG特征检测---简述
HOG特征检测---简述1、HOG介绍HOG(histogram of oriented gradient),用于目标检测的特征描述子。一种解决人体目标检测的图像描述子,是一种用于表征图像局部梯度方向和梯度强度分布特性的描述符。HOG特征原理:HOG的核心思想是所检测的局部物体外形能够被光强梯度或边缘方向的分布所描述。通过将整幅图像分割成小的连接区域(称为cells),每个原创 2016-12-23 11:42:32 · 7738 阅读 · 0 评论 -
OpenCV分水岭分割算法
OpenCV分水岭分割算法参考文章的地址:OpenCV学习之分水岭算法:http://www.cnblogs.com/mikewolf2002/p/3304713.html1、代码实现#include #include using namespace std;using namespace cv;int main(){ // 打开另一幅图像 M原创 2017-02-16 21:50:44 · 1453 阅读 · 0 评论 -
Retinex实例
Retinex实例1、代码:#include #include #include "opencv2/opencv.hpp"using namespace cv;static void help(std::string errorMessage){ std::cout<<"Program init error : "<<errorMessage<<std:原创 2017-03-12 16:26:07 · 1858 阅读 · 0 评论 -
Retina2(视网膜用于高动态范围亮度压缩)---opencv2.4.11
opencv\sources\samples\cpp\OpenEXRimages_HDR_Retina_toneMapping.cpp:展示了如何使用视网膜执行高动态范围(HDR)亮度压缩//============================================================================// Name : O原创 2016-06-04 16:22:33 · 1187 阅读 · 0 评论 -
boundingRect()函数的使用方法
Calculates the up-right bounding rectangle of a point set.C++: Rect boundingRect(InputArray points)Parameters:points – Input 2D point set, stored in std::vector or Mat.注意:(原创 2015-10-31 17:08:09 · 11900 阅读 · 0 评论 -
级联分级器目标检测objdect(人脸和人眼的检测)
OpenCV支持的目标检测的方法是利用样本的Haar特征进行的分类器训练,得到的级联boosted分类器(Cascade Classification)。注意,新版本的C++接口除了Haar特征以外也可以使用LBP特征。先介绍一下相关的结构,级联分类器的计算特征值的基础类FeatureEvaluator,功能包括读操作read、复制clone、获得特征类型getFeatureType,分配翻译 2015-10-08 10:33:47 · 1118 阅读 · 1 评论 -
opencv2读取摄像头并保存为视频
#include #include #include using namespace cv;using namespace std;int main(){VideoCapture cap(0);//读取usb摄像头视频if(!cap.isOpened()){cout"Capture could not be opened successfully"r原创 2015-10-16 11:10:57 · 4275 阅读 · 2 评论 -
adaboost haar分类器训练1(opencv2.4.10版本)
使用createPositiveSamples制作工具createsamples.exe,来制造正样本。(1)建立一个名为xx.bat批处理文件,其内容大概如下:cd D:\test\createPositiveSamples\byIndividualImage//进入分类器制作工具所在的文件目录createsamples.exe -img pos.bmp -bg bgimg.tx原创 2015-10-09 09:54:32 · 659 阅读 · 0 评论 -
adaboost haar分类器训练2(opencv2.4.10版本)
当有多个样本时,假设有9个样本图像,名称分别为1.bmp,2.bmp,3.bmp,4.bmp,5.bmp,6.bmp,7.bmp,8.bmp,9.bmp,并且9.bmp中有两个物体的样本。制作分类器样本2和分类器训练1中区别:(1)主要是描述文件的区别./bgimg/bg1.bmp 1 0 0 58 158 //1表示样本数量,0 0表示图像的左上角坐标,58,158表示图像宽原创 2015-10-09 10:39:50 · 755 阅读 · 0 评论 -
opencv输出图像数据到txt文件
opencv输出图像数据到txt文件1、输出二值图像数据到txt文件(1)代码如下:#include #include #include using namespace std; using namespace cv; int main() { //const char* filename = "42.jpg"; //图片名原创 2017-03-19 10:18:46 · 9275 阅读 · 0 评论 -
图像特征提取几种方法介绍
图像特征提取几种方法介绍参考:http://blog.csdn.net/abcjennifer/article/details/76396811、SIFTSIFT:尺度不变特征变换(Scale-invariant features transform)。SIFT是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points,or原创 2017-02-20 19:51:51 · 13288 阅读 · 0 评论