![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenCv
Best
Geek
展开
-
Android OpenCv实现拍照搜题功能实现步骤
分11步处理自定义相机扫描框实时扫描试卷二维码功能扫描二维码获取当前试卷信息自定义相机按试卷比例绘制裁剪框OpenCv对用户拍照图片进行矫正对矫正后的图片,使用OpenCv对图片进行处理,获取到图片定位点信息。根据图片定位点算出每张图片原点的偏移量获取到试卷起始定位点,根据第二步获取到的试卷坐标对图片进行题型框选(需要算原图和用户拍照图的宽高比例对坐标进行缩放处理,否则会圈的很不准确)OpenCv对框选内容进行图片切割、压缩。图片上传服务器进行识别搜题服务器返回各题识别结果和当前小图的.原创 2021-07-11 22:29:04 · 2323 阅读 · 5 评论 -
Android OpenCv4 图像切割
实现效果题型框选图片分割OpenCv实现分割代码 /** * * @param src 待切分的图 * @param rects 切分图的坐标信息 */ public static void imgSplit(Mat src, List<Rect> rects){ File pictureFile = new File(Environment.getExternalStorageDirectory(), "ImgS.原创 2021-05-21 22:59:30 · 929 阅读 · 5 评论 -
Android OpenCv4 图像透视变换之图片矫正
实现效果相机拍照,对图片进行倾斜矫正图片矫正实现步骤读取图片到内存。为两张图检测ORB特征点。特征匹配:找到两图中匹配的特征点,并按照匹配度排列,保留最匹配的一小部分。然后把匹配的特征点画出来并保存图片。计算单应性矩阵:由于上一步产生的匹配的特征点不是100%正确的,需要调用findHomography 函数来计算多个二维点对之间的最优单应性变换矩阵。透视变换:有了精确的单应性矩阵,就可以把一张图片的所有像素映射到另一个图片。使用透视变换 来完成图片矫正。透视变换透视变换(P.原创 2021-05-17 20:52:55 · 2691 阅读 · 4 评论 -
Android OpenCv4 斑点检测,实现图片特征点绘制
结合以前功能点做一个特征点绘制实现步骤图片灰度化高斯滤波二值化图片腐蚀图片膨胀斑点检测绘制特征点前五个已经在前几章说过了,在这就不再说了,有不明白的可以回去看一下。斑点检测,斑点j是指二维图像中周围有颜色差异和灰度差异的区域,因为斑点代表的是一个区域,所以其相对于单纯的角点,具有更好的稳定性和更好的抗干扰能力.斑点通常是指与周围有着颜色和灰度差别的区域。代码会注释已经很清楚了 public static List<Point> getPoint(Contex.原创 2021-05-13 23:08:35 · 610 阅读 · 0 评论 -
Android OpenCv4 图像形态学之腐蚀和膨胀
图像腐蚀图像腐蚀的作用是将目标图像收缩,运算效果取决于结构元素大小内容以及逻辑运算性质。腐蚀处理可以表示成用结构元素对图像进行探测,找出图像中可以放下该结构元素的区域。腐蚀是一种消除边界点,使边界点内缩的过程。可以用来消除小且无意义的目标物。/** src 输入的待腐蚀图像,图像的通道数可以是任意的,但是图像的数据类型必须是CV_8U,CV_16U,CV_16S,CV_32F或CV_64F dst 腐蚀后的输出图像,与输入图像src具有相同的尺寸和数据类型 kernel 用于腐蚀.原创 2021-05-12 21:42:33 · 558 阅读 · 0 评论 -
Android OpenCv4 边缘检测+轮廓绘制出图像最大边缘
Canny边缘检测基于Canny算法的边缘检测主要有5个步骤,依次是高斯滤波、像素梯度计算、非极大值像素梯度抑制、滞后阈值处理和孤立弱边缘抑制。Canny在有噪声的情况下表现好不好,取决于前面的降噪过程,可以手动做高斯处理提高识别率。/** image 输入图像,必须是CV_8U的单通道或者三通道图像。 edges 输出图像,与输入图像具有相同尺寸的单通道图像,且数据类型为CV_8U。 threshold1 第一个滞后阈值。 threshold2 第二个滞后阈值。 ap.原创 2021-05-11 22:16:01 · 1317 阅读 · 9 评论 -
Android OpenCv4 高斯滤波
高斯滤波高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。 通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。高斯滤波是利用高斯核的一个2维的卷积算子,用于图像模糊化(去除细节和噪声)。/**src 待高斯滤波图像,图像可以具有任意的通道数目,但是数据类型必须为C.原创 2021-05-11 20:42:56 · 373 阅读 · 1 评论 -
Android OpenCv4 二值化
图像二值化( Image Binarization)就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。方法以及参数介绍/** src 待二值化的多通道图像,只能是CV_8U和CV_32F两种数据类型 dst 二值化后的图像,与输入图像具有相同的尺寸、类型和通道数 thresh 二值化的阈值 maxval 二值化过程的最大值,此函数只在T...原创 2021-05-10 22:59:20 · 498 阅读 · 1 评论 -
Android OpenCv4 绘制多边形
集成非常简单,直接按Module形式导入open sdk即可绘制矩形方法 /** img 输入图像 pt1 左上起点 pt2 右下终点 color 绘制直线的颜色 thickness 直线宽度。若为负值,表示填充 lineType 边界的类型,可取值为FILLED ,LINE_4 ,LINE_8 和LINE_AA shift 点坐标中的小数位数 **/ public static void rectangle(Mat img, Point pt1,..原创 2021-05-10 21:42:22 · 434 阅读 · 1 评论