Opencv2图像裁剪(子图像提取)
int helloworld(IplImage* img)
{
//将图像大小限定为可以被4整除的size
int width = img->width/4;
int height = img->height/4;
width *= 4;
height *=4;
Mat rgb_mat(img, 0);
rgb_mat.convertTo(rgb_mat, CV_32F);
Size mat_size;
mat_size.height = height/2;
mat_size.width = width/2;
//构造四个图像矩阵
Mat mat_top_left(mat_size, CV_32F); //左上角
Mat mat_top_right(mat_size, CV_32F);//右上角
Mat mat_bottom_left(mat_size, CV_32F);//左下角
Mat mat_bottom_right(mat_size, CV_32F);//右下角
//把原图分割成四张图
rgb_mat(Rect(0, 0, mat_size.width, mat_size.height)).convertTo(mat_top_left, mat_top_left.type(), 1, 0);
rgb_mat(Rect(mat_size.width, 0, mat_size.width, mat_size.height)).convertTo(mat_top_right, mat_top_right.type(), 1, 0);
rgb_mat(Rect(0, mat_size.height, mat_size.width, mat_size.height)).convertTo(mat_bottom_left, mat_bottom_left.type(), 1, 0);
rgb_mat(Rect(mat_size.width, mat_size.height, mat_size.width, mat_size.height)).convertTo(mat_bottom_right, mat_bottom_right.type(), 1, 0);
}
opencv之读取图像
cv::[Mat](http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html#Mat) imread
(
const string&* filename*, int* flags=1*)
flag>0 load的图片强制转换成3通道彩色图像
flag<0 load的图片强制转换成灰度图像
#######opencv读取图像的灰度值并显示出来
#include"cv.h"
#include"highgui.h"
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
IplImage* src = cvLoadImage( "0.bmp", 0 ); //导入图片
int width=src->width;//图片宽度
int height = src->height;//图片高度
for (size_t row=0;row<height;row++)
{
uchar* ptr = (uchar*)src->imageData+row*src->width;//获得灰度值数据指针
for (size_t cols=0;cols<width;cols++)
{
int intensity=ptr[cols];
cout<<intensity<<" ";
}
}
return 0;
}
OCR识别技术
- openCV library下载地址
- 谷歌维护的 Tesseract
,支持60多种语言
收费的 国内 做的比较好的是 **云脉
** ,只不过套餐价格挺昂贵的
国外的ABBYY
http://www.abbyy.cn/for_developers
https://github.com/mmackh/MAImagePickerController-of-InstaPDF
// OCR - PDF
https://github.com/mstrchrstphr/OCR-iOS-Example
http://www.cocoachina.com/bbs/read.php?tid-123463-page-2.html
https://github.com/gali8/Tesseract-OCR-iOS
OCR处理流程: 预处理+锐化+二值化 +倾斜校正+图片分割。
1.有效率,有准确率
2.名片切割
3.名片旋转校正
4.名片分行
5.字符识别
6.OCR常见错误校正
7.字符分司校正
Regular Expression提取名片信息
http://blog.csdn.net/kastolo/article/details/9039641 // 名片识别
http://blog.csdn.net/kastolo/article/details/9044937 // 名字识别 100%提取名字
SAP 冲突算法在OCR中的应用
https://github.com/tesseract-ocr/tessdata //多语言识别库
名片扫描通ScanZen 中的URL AutoCorrect