
opencv
cool_策
以梦为马,莫负韶华
寻找小伙伴,一起搞事情
抱团取暖,合作共赢
wx:图像处理进阶之路
展开
-
ocr数据集(图片,txt)转lmdb
import osimport lmdb # install lmdb by "pip install lmdb"import cv2import refrom PIL import Imageimport numpy as npimport imghdrdef checkImageIsValid(imageBin): if imageBin is None: return False try: imageBuf = np.fromstrin原创 2020-06-01 16:57:21 · 673 阅读 · 2 评论 -
任意四点按顺时针排列
任意四点按起始点从左上角开始,顺时针输出,代码如下:#coding:utf-8import cv2import numpy as npif __name__=='__main__': img = np.zeros((1000, 1000, 3), np.uint8) # cnt=np.array([[474,143],[448,135],[369,359],[343,350]]) #倾斜的矩形 # cnt=np.array([[500,300],[100,100],原创 2020-05-19 14:41:42 · 3267 阅读 · 2 评论 -
icdar2015转VOC数据集(labelImg可查看)
直接运行代码import osimport numpy as npimport cv2def xml(num,width,height,labelname,box,imageName,imagePath): """ 写xml文件 :param num: 第num个文件 :param width: 图的宽 :param height: 图的高 ...原创 2020-04-08 17:50:28 · 660 阅读 · 0 评论 -
车道线开源算法
传统方法,opencv实现https://zhuanlan.zhihu.com/p/52623916https://zhuanlan.zhihu.com/p/54866418https://github.com/yang1688899/CarND-Advanced-Lane-Lines深度学习算法https://github.com/MaybeShewill-CV/lanenet-lan...原创 2020-03-26 10:16:26 · 384 阅读 · 0 评论 -
opencv文字绘制
opencv绘制文字cv::putText() void cv::putText( cv::Mat& img, // 待绘制的图像 const string& text, // 待绘制的文字 cv::Point origin, // 文本框的左下角 int fontFace, // 字体 (如cv::FONT_HERSHEY_PLAIN) double fon...原创 2019-11-21 12:29:02 · 448 阅读 · 0 评论 -
Image Matting代码和算法效果总结
单纯的mark一下,自己好找参考连接https://blog.youkuaiyun.com/on_theway10/article/details/81873538原创 2019-10-30 18:20:10 · 670 阅读 · 0 评论 -
去除直线
#include<iostream>#include<opencv.hpp>#include<io.h>using namespace cv;using namespace std;void removeLine(string srcPath,string saveName){ Mat srcImage = imread(srcPath, 0);...原创 2019-05-08 14:22:47 · 1032 阅读 · 0 评论 -
Opencv获取图像的外接矩形和最小外接矩形
效果图代码string boundRect(string srcPath){ Mat srcImage = imread(srcPath); if (srcImage.empty()) { return "srcImage is Empty"; } else { Mat temp; Mat binary_temp; cvtColor(srcImage, te...原创 2019-02-21 17:25:07 · 22425 阅读 · 4 评论 -
opencv将图片形式传输格式的转换
base64转MatMat转base64Mat 转char*char *转Mat示例代码#include <iostream>#include <fstream>#include <opencv.hpp>#include <vector>#include<string>using namespace cv;usi...原创 2019-01-23 11:49:54 · 1915 阅读 · 0 评论 -
python3下读取、存储带有中文路径图片的方法
直接调用就行#读取中文路径def cv_imread(file_paht): cv_img=cv2.imdecode(np.fromfile(file_paht,dtype=np.uint8),-1) return cv_img#保存中文路径def cv_imwrite(savePath,tem): cv2.imencode('.jpg',tem)[1].tofil...原创 2018-12-27 18:35:55 · 4622 阅读 · 0 评论 -
DXF文件格式转成图片(dxflib和opencv)
参考博客:https://blog.youkuaiyun.com/weixinhum/article/details/53860176 该博主的文件工程下下来只能能用 很良心参考博客:http://www.ribbonsoft.com/doc/dxflib/2.5/classref/struct_d_l___m_text_data.html 各个函数用法/* * @file main.cpp...原创 2018-11-21 09:18:59 · 6173 阅读 · 20 评论 -
发票、文本等矫正
//# include &amp;amp;lt;opencv2/opencv.hpp&amp;amp;gt;//# include &amp;amp;lt;iostream&amp;amp;gt;//using namespace cv;//using namespace std;//#define ERROR 1234////度数转换//double DegreeTrans(double theta)//{// do原创 2018-08-14 15:23:49 · 1328 阅读 · 0 评论 -
opencv-图像相似度评价指标方法总结
参考链接:https://blog.youkuaiyun.com/zjyruobing/article/details/49908979C++ 实现的MSSIM代码如下:Scalar getMSSIM(Mat inputimage1, Mat inputimage2){ //x:inputimage1 y:inputimage2 Mat i1 = inputimage1; Mat i2 =...原创 2019-02-20 15:29:35 · 2193 阅读 · 1 评论 -
opencv训练SVM手写体识别
代码如下#include <stdio.h> #include <time.h> #include <opencv2/opencv.hpp> #include <opencv/cv.h> #include <iostream> #include <opencv2/core/core.hpp> #incl...原创 2019-03-22 15:04:41 · 630 阅读 · 0 评论 -
OCR图像去噪
代码如下:#include<opencv.hpp>#include<iostream>using namespace std;using namespace cv;Mat srcImage;//八领域去噪void NaiveRemoveNoise(double pNum);//连通域去噪void ContoursRemoveNoise(double p...转载 2019-04-12 14:19:12 · 2452 阅读 · 10 评论 -
OpenCV显示中文汉字,日语等等
参考链接:https://blog.youkuaiyun.com/weixinhum/article/details/84074594原创 2019-05-09 14:27:07 · 717 阅读 · 0 评论 -
移动平均阈值分割
#include<iostream>#include<opencv.hpp>using namespace cv;using namespace std;/*对输入图像作移动平均分割src为单通道灰度图像num表示计算平均的点数*/void movingThreshold(Mat Img, Mat Img1, int num){ IplImage...原创 2019-06-21 10:01:19 · 2751 阅读 · 1 评论 -
Tesseract调用日文识别模型
调整的好的话 测试准确率80%以上int main(int argc, char** argv){ // Usage: tesscv image.png system("chcp 65001"); string path = "D:/Image/8/"; vector<string> files; //getAllFiles(path, files); //for (a...原创 2019-07-12 17:56:15 · 1748 阅读 · 0 评论 -
多线程图像处理opencv
效率从130s降到39s#include <iostream> #include<fstream>#include <stdio.h>#include <stdlib.h>#define WIN32_LEAN_AND_MEAN#include<windows.h>#include <shellapi.h>#...原创 2019-07-15 15:46:27 · 1684 阅读 · 0 评论 -
图像的几何变换之坐标映射
图像的坐标映射源码如下:#include <cv.h> #include <highgui.h> #include<opencv.hpp>#include <stdio.h> using namespace cv;//全局变量int a, b;float *c;float map_x1;float map_y1;int X1, Y1;Mat src(500,500, CV_8原创 2017-07-25 13:43:58 · 477 阅读 · 0 评论 -
去除OCR中的虚线
原图如下 处理代码#include<iostream>#include<opencv.hpp>using namespace cv;using namespace std;/*函数功能:在输入图像中找一条直线输入输出:输入的图像是灰度图raw,返回值为dst,返回值是一条白色的线lines = cvHoughLines2(canny, stor,...转载 2018-07-26 14:36:08 · 1259 阅读 · 0 评论 -
Opencv将.jpg背景透明
直接代码,可用#include<iostream>#include<opencv.hpp>using namespace cv;using namespace std;Mat createAlpha(cv::Mat& src){ cv::Mat alpha = cv::Mat::zeros(src.rows, src.cols, CV_8UC1...转载 2018-07-06 11:11:10 · 4297 阅读 · 0 评论 -
Qt多线程实现opencv的人脸检测
代码基于Qt5.9.1+opencv3.3实现的。是开了两个线程,播放视频在一个线程,检测在另一个线程,并把检测到的人脸图像放在本地文件目录底下。注释很详细 主线程代码#include <QCoreApplication>#include"QtConcurrent/QtConcurrent"#include<iostream>#include"opencv.h"using namespac原创 2017-08-30 09:36:05 · 2142 阅读 · 2 评论 -
单目相机的标定
采用的张正友标定法,但是基于Opencv里面的函数。 本人使用的Opencv3.3版本是基于Qt的开发。 参考博客:http://blog.youkuaiyun.com/dcrmg/article/details/52939318 本人是将照片采集到后自己再进行标定。 网上看了不少资料感觉,很少有比较好的,本人的代码是可以跑通的工程是基于控制台的。#include<string>#include<fs原创 2017-09-05 15:47:22 · 782 阅读 · 0 评论 -
Qt5.9.1+Opencv3.3的环境配置
本环境变量的配置是柴智博士提供的方法,特此声明。我只负责分享给大家。本文档的配置文件我会上传。大家可以先下载后统一按教程配置。第一步:配置文件的获取。分别下载Qt5.9.1与Opencv3.3。(不需要配置什么系统的环境变量)第二步:需要先安装vs2015,再装Qt5.9.1,只需安装自己需要的控件,建议全部安装只是占用内存较多,wdksetup_v1703.exe。这个文件是供Qt使用debug进原创 2017-08-26 10:52:04 · 3962 阅读 · 0 评论 -
生活感悟(一)
大学即将过去,实习到了。刚刚踏出校门的我,内心无辜多了很多不安。在找工作时的忐忑,再到找到工作时的喜悦,接着就是莫名的恐惧。可能是怕自己没能力把工作做好,可能是自己太过敏感。不管怎样,对于刚出大学校门或者即将踏出大学校门的有志之士。希望大家多问学长和朋友,他们的经验是我们前进道路上的明灯,我们要懂得借助他人的力量来帮助自己成长。 入职前夕,我们面对北漂都面对的难题——找房子,建议最好还是同通过同学原创 2017-07-25 22:30:11 · 331 阅读 · 0 评论 -
对人脸检测和人脸识别的理解
人脸检测是指对输入图像中判断是否存在人脸区域,并进一步确定人脸的位置、大小、姿态等信息。 这些算法大致分为三种类别:基于肤色的检测方法、基于形状的检测方法、基于统计理论的检测方法。 人脸识别技术是基于人的脸部特征,一个完整的人脸识别过程一般包括人脸检测和人脸识别两大部分。人脸识别就是将待识别的人脸与已知的人脸进行比较,得出相似程度的相关信息。 人脸自动识别系统包括三个主要的环节:首先是图像预处原创 2017-03-24 20:29:46 · 1664 阅读 · 0 评论 -
借助摄像头在Python中实现人脸检测
1、使用Opencv中自带的训练器和检测器。如果你想自己训练一个分类器来检测汽车,飞机等的话,可以使用Opencv来构建。 2、Opencv中已经包含了很多已经训练好的分类器,其中包括:面部,眼睛,微笑等。这些XML文件保存在:/opencv/data/haarcascades/文件中。下面我将使用Opencv创建一个面部和眼睛的检测器。代码如下:import cv2import numpy a原创 2017-03-24 09:36:44 · 1947 阅读 · 0 评论 -
直方图的均衡化(Python)
这篇文章介绍在Python中使用OpenCV和NumPy对直方图进行均衡化处理。本文内容: 1、使用查找表拉伸直方图 2、使用OpenCV和NumPy的函数以不同的方式进行直方图均衡化 在某些情况下,一副图像中大部分像素的强度都集中在某一区域,而质量较高的图像中,像素的强度应该均衡的分布。为此,可将表示像素强度的直方图进行拉伸,将其平坦化。如下: 实验数据直方图:使用查找表来拉伸直方图在图像转载 2017-03-22 10:22:11 · 2348 阅读 · 1 评论 -
图像的阈值处理(Python)
图像的阈值处理一般使得图像的像素值更单一、图像更简单。阈值可以分为全局性质的阈值,也可以分为局部性质的阈值,可以是单阈值的也可以是多阈值的。当然阈值越多是越复杂的。下面将介绍opencv下的三种阈值方法。(一)简单阈值 简单阈值当然是最简单,选取一个全局阈值,然后就把整幅图像分成了非黑即白的二值图像了。函数为cv2.threshold() 这个函数有四个参数,第一个原图像,第二个进行分类的阈值转载 2017-03-21 22:35:34 · 8088 阅读 · 0 评论 -
海康网络摄像机视频数据的获取及使用opencv显示
最近要使用海康威视摄像机获取数据做处理。主要是借助Opencv这个工具,所以做了一下步骤。 我用的是基于Qt+opencv的来显示海康数据的。本人海康的型号为:DS-2CD2820FD 1、海康sdk开发环境的配置(我只给出我的配置路径,视具体情况而定)LIBS += -LD:\Softwares\HaiKang\x64\lib\-lHCNetSDK \-lGdiPlus \-lHCCor原创 2017-09-01 15:11:27 · 5547 阅读 · 0 评论 -
深度摄像头测距原理简介
转自:http://blog.youkuaiyun.com/jaylinzhou/article/details/70810300深度检测主要技术方法: 1.双目匹配(双RGB摄像头+可选的照明系统) 三角测量原理即目标点在左右两幅视图中成像的横坐标之间存在的差异(视差Disparity),与目标点到成像平面的距离成反比例的关系:Z = ft/d;得到深度信息。 双目匹配采用三角测量原理完全基于图像处理技转载 2017-10-11 19:08:41 · 5827 阅读 · 0 评论 -
Opencv的lsd算法
检测效果比霍夫变换要好#include<iostream>#include<opencv.hpp>using namespace cv;using namespace std;int main(){ cout << "hello world" << endl; Mat image = imread("E:/Proje...原创 2018-07-06 11:10:00 · 7219 阅读 · 0 评论 -
票据预处理(二)
// DecetorOcr.cpp : Defines the exported functions for the DLL application.//#include "stdafx.h"#include"DecetorOcr.h"#include<iostream>#include<string>#include<opencv.hpp>usi...原创 2018-07-12 16:45:23 · 454 阅读 · 2 评论 -
处理票据识别的预处理
#include<iostream>#include<opencv.hpp>using namespace cv;using namespace std;void chao_thinimage(Mat &srcimage)//单通道、二值化后的图像{ vector<Point> deletelist1; int Zhangmud...原创 2018-07-12 16:42:39 · 1633 阅读 · 0 评论 -
从txt文件中读取数据并赋值给Mat
一直想把相机标定的内参和畸变直接从txt文件中读取,并赋值给Mat。现在代码如下,交流注:本人是基于Qt来进行编程,代码可以直接复用,粘贴相应部分就行。void initMat(Mat &m,float(*p)[3]){ for(int i=0;i<m.rows;i++) for(int j=0;j<m.cols;j++) m.at<fl...原创 2018-03-14 14:33:49 · 3007 阅读 · 0 评论 -
视频ROI多边形区域生成
操作步骤:1、按下任意键盘键,视频暂停播放2、点击鼠标左键选取感兴趣区域3、按任意键盘键,获取roi区域代码亲测有效//鼠标事件生成roi多边形区域#include <opencv/cv.h>#include <opencv/highgui.h>#include "stdlib.h"#include "stdio.h"//鼠标事件入参,可用头文件包含typed...转载 2018-03-20 14:31:07 · 1109 阅读 · 1 评论 -
opencv边缘检测的方法
部分边缘检测仅提供主要实现代码工程需要自己补充完整1、Robert原理:任意一对互相垂直方向上的差分可以看成求梯度的近似方法优缺点:边缘定位精度较高,对于陡峭边缘且噪声低的图像效果较好,但没有进行平滑处理,没有抑制噪声能力应用具有陡峭的低噪声的图像处理效果较好/*****************************Robert*******************************/Ma...原创 2018-03-09 15:20:26 · 1650 阅读 · 0 评论 -
迭代中值滤波算法
椒盐噪声作为影像中的一类典型噪声,一般因信号传输通道的错误或图像采集设备而产生。由于椒盐噪声的强度大,且分布随机,对影像质量和后续应用产生极大的影响。中值滤波是一种简单高效的分线性椒盐噪声消除方法,为了改善传统中值滤波的局限性,学者提出了加权中值滤波(WMF),中央加权中值滤波(CWMF),排序均值滤波(ROMF)等方法,但这些方法在实际处理中没有将噪声像元与非噪声像元区别对待,不可避免地产生了图转载 2018-01-05 13:10:00 · 4313 阅读 · 0 评论 -
opencv闲篇(基于opencv的gpu硬解码)
opencv2.4.9的lib链接库realseopencv_calib3d249.libopencv_contrib249.libopencv_core249.libopencv_features2d249.libopencv_flann249.libopencv_gpu249.libopencv_highgui249.libopencv_imgproc249.lib...原创 2018-01-02 19:43:22 · 7278 阅读 · 0 评论