opencv10条形码
1、做基于OPencv的车牌识别,需要车牌字符模板特征值,用十五个数字来代替汉字或字符的那种,例子问题补充里
这个数字特征可以自己算
用不同方向,不同阶的 矩 组成
2、opencv里下面的代码,使用python如何实现? Rect rect(10, 20, 100, 50); Mat image_roi = image(rect);
>>> from PIL import Image
>>> f = Image.open('C:\IMG_20140528_123733.jpg')
>>> xsize,ysize=f.size
>>> box=(0,0,xsize-200,ysize-200)
>>> img = Image.open('C:\IMG_20140528_123733.jpg')
>>>
这样可以么?我猜测你是要根据坐标类切割图片,这个python用pil包做图片切割的方法。有问题可以追问。
3、如何在win10上安装opencv
1,我的环境:
操作系统:Windows 10 64位
IDE: Visual studio Community 2015(此版本免费,基本功能都有,够用)
OpenCV: OpenCV 3.0 for windows(下载地址:http://opencv.org/)
2,首先安装好VS 和 OpenCV,OpenCV的安装其实就是把官方下载的exe解压的自己制定目录。
3,配置OpenCV相关的环境变量,安装完成后在系统的环境里找到“Path”,编辑并在后边加入自己的OpenCV目录,如: “;D:\opencv\build\x86\vc12\bin”
4,新建一个C++的win32控制台项目
5,修改项目的相关配置。具体为:项目--属性-- 配置属性--VC++ 目录
--Include path(包含目录):
D:\opencv\build\include
D:\opencv\build\include\opencv
D:\opencv\build\include\opencv2
--Lib path(库目录):
D:\opencv\build\x86\vc12\lib
D:\opencv\build\x86\vc12\staticlib
--链接器--输入--附加依赖项:
opencv_ts300.lib
opencv_world300.lib
6,完成上述步骤,环境基本就可以使用了,此时新建一个cpp文件来运行我们的第一个demo。由于我也是新手,所以网上随手找个一个项目:
cpp] view plain print?
//显示图像文件
#include <opencv2/opencv.hpp>
using namespace std;
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
int main()
{
const char *pstrImageName = "IMG_0897.JPG";
const char *pstrWindowsTitle = "OpenCV第一个程序";
//从文件中读取图像
IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);
//创建窗口
cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE);
//在指定窗口中显示图像
cvShowImage(pstrWindowsTitle, pImage);
//等待按键事件
cvWaitKey();
cvDestroyWindow(pstrWindowsTitle);
cvReleaseImage(&pImage);
return 0;
}
4、您好,我想用opencv识别条形吗 是code128的 一幅图片有四个条形码 您那有代码吗?
识别不了的可能性很多,但从你这个条形码上看,问题出在制作的过程,这个条形码是错误的,所以根本无法识读,我在这边用了4种条码扫描枪都扫不出来,那就是这个条形码制作的问题。
下面是我用你的数据做出来的标准的条形码,你可以扫描一下 试试。。
5、opencv代码求助(探测摄像头中红色圆形 并标注)
static const int R=2;
static const int G=1;
static const int B=0;
IplImage *src = cvLoadImage("E:/test.png");
cvShowImage("s",src);
IplImage *dst = cvCreateImage(cvGetSize(src),src->depth,src->nChannels);
cvSet(dst,cvScalar(0,0,0));
for (int h=0;h<src->height;h++) {
unsigned char* prgb=(unsigned char*)src->imageData+h*src->widthStep;
unsigned char* pdst=(unsigned char*)dst->imageData+h*dst->widthStep;
for (int w=0;w<src->width;w++) {
if (prgb[R]>=200&&prgb[G]>0&&prgb[G]<50&&prgb[B]>0&&prgb[B]<50)
{
memcpy(pdst,prgb,3);
}
prgb+=3;
pdst+=3;
}
}
IplImage *gray = cvCreateImage(cvGetSize(src),src->depth,1);
cvCvtColor(dst,gray,CV_BGR2GRAY);
cvThreshold(gray,gray,50,255,CV_THRESH_BINARY);
cvSmooth(gray,gray,CV_GAUSSIAN,5,5);
cvShowImage("red",gray);
CvMemStorage *pcvMStorage = cvCreateMemStorage();
double fMinCircleGap = gray->height / 10;
CvSeq *pcvSeqCircles = cvHoughCircles(gray, pcvMStorage, CV_HOUGH_GRADIENT, 1, fMinCircleGap);
int i;
for (i = 0; i < pcvSeqCircles->total; i++)
{
float* p = (float*)cvGetSeqElem(pcvSeqCircles, i);
cvCircle(src, cvPoint(cvRound(p[0]), cvRound(p[1])), cvRound(p[2]), CV_RGB(0, 255, 0), 3);
}
cvShowImage("result",src);
6、帮忙解释一下opencv代码,看不懂,希望每句都解释一下,谢谢啦!
这些代码都解释的这么好了,为什么还需要解释呢。
void CBgCutSystemDlg::DetectObject( IplImage* img) //对话框的检测目标的函数
{
CvSize size = cvSize(img->width,img->height); //获取参数img的图像宽高
CvMemStorage *stor=NULL; //创建内存空间的指针
IplImage* tmp_s=cvCreateImage( size, IPL_DEPTH_8U, 1 ); //创建单通道的8位图像
IplImage *curimg=cvCreateImage( size, IPL_DEPTH_8U, 1 ); //创建单通道的8位图像
CvSeq *tmp_cont; //创建序列的指针
double timestep = clock()/100.; // 定义时间戳
IplImage* imgpyr = cvCreateImage( cvSize((size.width & -2)/2, (size.height & -2)/2), 8, 1 ); //创建imgpyr的图像指针,是降采样的金字塔图像
CvFont font;
cvInitFont(&font,CV_FONT_HERSHEY_DUPLEX ,0.6f,0.6f,0,2,CV_AA);
/*先进行数据的初始化,取第10帧,因为前面的帧有可能不是背景是黑色的这样更保险,也就是认为10帧以后是正常的*/
if( nFrmNum==10 )
{
if (buf)//buf应该是缓存的图像,不知道在哪里定义的,应该是全局的图像指针
cvReleaseImage( &buf); //释放图像
buf = cvCreateImage( size, IPL_DEPTH_8U, 1 ); //重新定义buf为单通道的图像
cvZero( buf ); //清空图像缓存
cvCvtColor( img, buf, CV_BGR2GRAY ); //将传递的图像信息传递给buf,这里才知道img是3通道的彩色图像
} else if(nFrmNum>10) {//如果超过了10帧做什么处理?
7、python怎么识别条形码
一般思路是用Opencv解析条码图片,用NumPy做数值计算,中国区的条码是是EAN13条形码,找找这方面的资料吧,我也不是很清楚条码的编码解码规则,也没兴趣去深入了解。理解了规则,再动手去做编码解码的活,就很简单了,所以你要做的事就是:
用cv2载入图像,并转换成单通道图像,并解析图像。
跟据条码规则和图像解析结果,进行译码。
输出结果。
8、opencv 红色的rgb分别多少
光看RGB值很难把红色提取出来,建议转到HSV颜色空间。因为opencv 的H范围是0~180,红色的H范围大概是
(0~8)∪(160,180)
S饱和度很重要,一般是大于一个值,S过低就是灰色(参考值S>80),
V就亮度,过低就是黑色,过高就是白色(参考值220>V>50)
PS:用cvCvtColor(src,dst,CV_BGR2HSV)即可转换
9、opencv 2.1.10 和opencv 2.4.11的区别
opencv2.4.10可以使用1.0版本的 1、下载软件 下载OpenCV-2.4.0,双击解压到%opencv%(凡是出现%opencv%的地方均替换为你自己opencv的路径全名
10、为什么编译opencv超过10个gb
编译opencv超过10个gb的原因如下
配置选项,能帮助编译者确定哪些功能模块需要编译,哪些不需要编译,同时能控制整个编译文件的大小,如果默认配置选项的话,编译文件可能会超过10G。
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。