
OpenCV其他
OpenCV其他
业余狙击手19
图像算法菜鸟,点滴积累成就硕果累累。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OpenCV学习专栏汇总
工作学习中搜索问题时看到的opencv系列文章,各位博主写的都很好,把它们统一整理在这里,方便日后查看、学习。1,OpenCV从入门到转行2,OpenCV学习与实践3,OpenCV学习笔记4,《OpenCV3编程入门》学习笔记5,OpenCV系列6,学习OpenCV:滤镜系列7,OpenCV专栏8,OpenCV 自带例程总结9,OpenCV-Python教程...原创 2019-01-11 20:05:43 · 566 阅读 · 0 评论 -
OpenCV在图片上添加中文,未使用CvxText和FreeType库
采用windows的GDI显示系统的TrueType字体,没有封装,就两个函数,分成了h和cpp文件,可以自己编辑文件名和函数名,亦可以直接将cpp的代码复制到你需要的程序中。 putText.h putText.cpp 演示 一,文件putText.h后面的cpp文件有一些简要说明。#ifndef PUTTEXT_H_#define ...转载 2018-12-28 21:10:08 · 1341 阅读 · 0 评论 -
OpenCV_HoughLinesP()函数检测直线
一,原图二,代码//霍夫变换检测直线void HoughLinesP_Test(){ Mat src = imread("D:\\原图.jpg", 0); Mat CannyImg; Canny(src, CannyImg, 140, 250, 3); imshow("CannyImg", CannyImg); Mat DstImg; cvtColor(src, ...原创 2018-12-07 07:26:25 · 3109 阅读 · 0 评论 -
OpenCV一个窗口显示多幅图像
一,原图二,代码//一个窗口显示多幅图像//const std::string& MultiShow_WinName //窗口名称//const vector<Mat>& SrcImg_V //图片数组//CvSize SubPlot //显示图像排列方式,比如cvSize(4, 1)表示1行4列//CvSize ...原创 2018-12-01 09:13:59 · 2576 阅读 · 2 评论 -
OpenCV使用Stitcher类生成全景图像
一,原图片 二,源代码#include <fstream>#include "opencv2/highgui/highgui.hpp"#include "opencv2/stitching/stitcher.hpp"#include <iostream>using namespace cv;using namespace std...转载 2018-11-05 18:07:54 · 2248 阅读 · 0 评论 -
OpenCV提取图像中的垂直线(或者水平线)
操作过程: 1) 读取原图; 2) 转为灰度图像; 3) 转为二值图像; 4) 定义结构元素; 5) 开操作。 void GetLine(){ Mat src, grayImg, binImg, dest; //①、读取图片 src = imread("D:\\2.png"); if (!src.data){ cout <&l...转载 2018-10-23 15:55:14 · 3699 阅读 · 0 评论 -
OpenCV中数据类型和常用数据类型对应关系
在openCV 中经常会遇到需要访问mat类对象中的数据的情况,所以必须真确填写相应的数据类型。1、OpenCV中的数据类型和常用的数据类型对应关系如下:Mat_&amp;amp;amp;lt;uchar&amp;amp;amp;gt;---------CV_8UMat&amp;amp;amp;lt;char&amp;amp;amp;gt;-----------CV_8SNat_&amp;amp;amp;lt;s转载 2018-10-15 16:22:52 · 1991 阅读 · 0 评论 -
两张图叠加 Python OpenCV 及 C++ OpenCV3实现
一,原图 二,源代码# -*- coding: utf-8 -*-import osimport cv2import numpy as npimport pylab as pl #画图img1 = cv2.imread('lena.jpg',0)img2 = cv2.imread('opencv-logo-white.jpg',0)# 把logo放在左上角,所以...原创 2018-08-08 15:00:32 · 7840 阅读 · 2 评论 -
OpenCV求垂直投影,并画出垂直投影图
一,原图 二,效果图 三,源代码//垂直方向投影Mat VerticalProjection(Mat srcImageBin)//垂直积分投影 { Mat lineImage(1, srcImageBin.cols, CV_8UC1, cv::Scalar(0, 0, 0)); int value; for (int i = 0; i &amp;amp;lt; s...原创 2018-07-18 13:45:58 · 3281 阅读 · 1 评论 -
利用OpenCV将图像转换成指定宽高的图像
Mat srcImage(64, 64, CV_8UC1, Scalar(255, 255, 255));//创建一个高64,宽64的灰度图的Mat对象 Mat signal = imread(&amp;amp;quot;D:\\sxl\\处理图片\\分类rnm\\0\\2_m.jpg&amp;amp;quot;, 0); Mat imageROI = srcImage(Rect((srcImage.cols - signa...原创 2018-07-09 13:43:29 · 2691 阅读 · 0 评论 -
OpenCV倾斜图片校正(情况一:背景与前景差别较大,情况二:倾斜文本)
一,效果图 二,代码//第一个参数:输入图片名称;第二个参数:输出图片名称void GetContoursPic(const char* pSrcFileName, const char* pDstFileName){ Mat srcImg = imread(pSrcFileName); imshow(&amp;amp;amp;quot;原始图&amp;amp;amp;quot;, srcImg); Ma原创 2018-07-08 15:31:47 · 11559 阅读 · 7 评论 -
OpenCV 分割斜体文字(包括旋转,垂直投影,水平投影,透视变换等)
一,原图 二,分割成行 三,通过旋转,透视变换,切割后的效果 四,源代码//初始化透视变换全局变量Mat warpMatrix;//计算透视变换矩阵void InitPersTransfor(){ vector&amp;amp;amp;amp;lt;Point&amp;amp;amp;amp;gt; not_a_rect_shape; not_a_rect_sh原创 2018-07-12 09:28:42 · 3193 阅读 · 0 评论 -
OpenCV利用透视变换将斜体校正
cv::Mat src = cv::imread(&amp;amp;quot;D:\\sxl\\处理图片\\斜体分割\\测试图\\正2.png&amp;amp;quot;); if (!src.data) return; //--------------旋转------------------------------------------------------ double angle = 19;...原创 2018-07-12 09:29:08 · 1841 阅读 · 0 评论 -
OpenCV读取文件夹下无序图像方法
之前写过一篇用Halcon更改图像序号的方法,现在看来有点多此一举啊,用OpenCV也可以读取无序图像,当然也可以将无序图像保存成有序图。代码如下:// LPCWSTR转stringstd::string WChar2Ansi(LPCWSTR pwszSrc) { int nLen = WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, NU...原创 2018-06-26 11:26:25 · 379 阅读 · 0 评论 -
OpenCV3.0中 Mat和IplImage相互转换
//IplImage—&amp;amp;gt;Mat //EXAMPLE: //浅拷贝: IplImage* pBinary=cvLoadImage(&amp;quot;c://temp.jpg&amp;quot;,0); Mat Img; Img=cvarrToMat(pBinary); //深拷贝只需要再在Mat里创建一个新的Mat对象,然后进行数据的复制,再用上述的函数进行数据头的复制(浅拷贝): IplImag原创 2018-06-25 17:10:26 · 1119 阅读 · 0 评论 -
OpenCV提取最大连通域
//选择最大区域,传进来是白底黑字void SelectMaxRegion(Mat &amp;amp;amp;Src){ //---------MAt转换成IplImage----- Mat SrcColor; cvtColor(Src, SrcColor, CV_GRAY2BGR); IplImage *src = &amp;amp;amp;IplImage(SrcColor); /...原创 2018-06-25 16:38:30 · 4621 阅读 · 1 评论 -
OpenCV去除面积较小的连通域
void RemoveSmallRegion(Mat &amp;amp;amp;amp;amp;Src, Mat &amp;amp;amp;amp;amp;Dst, int AreaLimit, int CheckMode, int NeihborMode){ int RemoveCount = 0; //新建一幅标签图像初始化为0像素点,为了记录每个像素点检验状态的标签,0代表未检查,1代表正在检查,2代表检查不合格(需要反转颜色),3代表...原创 2018-05-29 11:04:43 · 15448 阅读 · 16 评论 -
OpenCV获取图片连通域数量,并用不同颜色标记函
//--------------------连通域统计-----------------------------------int iConnectedAreaCount = 0; //连通域个数//Seed Filling(种子填充法)void icvprCcaBySeedFill(const cv::Mat&amp;amp;amp;amp;amp; _binImg, cv::Mat&amp;amp;amp;amp;amp; _lableImg)...原创 2018-05-29 11:03:20 · 7167 阅读 · 3 评论 -
Python OpenCV去除字母后面的杂线
原图 代码 src = cv2.imread(&amp;amp;amp;quot;28.png&amp;amp;amp;quot;) gray_src = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY) #cv2.imshow(&amp;amp;amp;quot;input image&amp;amp;amp;quot;, src) #cv2.imshow(&a转载 2018-05-07 11:54:00 · 4201 阅读 · 0 评论 -
基于OpnecCV的鱼眼镜头校正
UINT CFisheyeCorrectionDlg::StartLineAcq(LPVOID lpParam){ ofstream fout(&amp;quot;caliberation_result.txt&amp;quot;); /** 保存定标结果的文件 **/ /*******************************************************************原创 2018-01-01 16:45:36 · 454 阅读 · 2 评论 -
将Mat图像显示到MFC PictureControl控件上
void CCameraTimeDlg::ShowMatImage(Mat&amp; src){ try { if (src.empty())//没有图像时推出 { return; } BITMAPINFO *pBmpInfo1; if(src.channels()== 1)//灰度图像显原创 2017-10-11 14:04:10 · 1741 阅读 · 2 评论 -
unsigned char* pImgData转换成Opencv Mat格式
bool CCameraTimeDlg::ImageToMat(unsigned char* pImgData, long lWidth, long lHeight, PTPixelFormat pixelFormat,Mat &mimg){ try { if (!pImgData) return false; if(pix原创 2017-10-11 11:33:23 · 3866 阅读 · 5 评论 -
用opencv计算棋盘格内角点坐标(通过4个内角点获得转换矩阵),并同时用halcon和opnecv对图像进行透视变换
该篇和上篇的主要区别是选取4个内角点而不是全部内角点计算转换矩阵,程序改变不大,主要是想看一下两者之间矫正结果有什么区别。// projectivetest.cpp : 定义控制台应用程序的入口点。//通过四点获得透视变换矩阵#include &quot;stdafx.h&quot;#include &quot;cv.h&quot;#include &quot;cxcore.h&quot;#inc原创 2017-07-14 14:37:19 · 4472 阅读 · 0 评论 -
用opencv计算棋盘格内角点坐标(通过多个内角点获得转换矩阵),并同时用halcon和opnecv对图像进行透视变换
本篇主要是为了方便以后查找,所以直接贴代码。程序基本思路是,用opencv计算棋盘格内角点坐标(垂直拍摄和倾斜拍摄,再通过获得的垂直内角点坐标和倾斜内角点坐标计算出转换矩阵。)为了比较halcon和opencv的校正效果,程序同时用opencv和halcon对图像进行校正。#include &quot;stdafx.h&quot;#include &quot;cv.h&quot;#include &quot;cxcore原创 2017-07-14 14:19:13 · 3607 阅读 · 0 评论 -
基于opencv3.0的直线拟合和曲线拟合
一,拟合效果图 曲线拟合,另外画了折线图 直线拟合二,源码//开始void CLeastSquaresMethodDlg::OnBnClickedStartButton(){ //创建用于绘制的深蓝色背景图像 int i_pointNum = 12; cv::Mat image = cv::Mat::zeros(480, 640, CV_8UC3);原创 2017-07-13 17:37:02 · 1864 阅读 · 0 评论 -
基于Opencv3.0对图像进行透视变换
一,计算图片 垂直拍摄的标定板 倾斜30度拍摄的标定板 待处理图像二,矫正效果 矫正效果图二,源码 全局变量 //####################################### std::vector pointsCZ, pointsQX; //垂直,倾斜 //#######################################1,计算标定板,获取原创 2017-07-13 17:28:42 · 4457 阅读 · 1 评论