OpenCV

getPerspectiveTransform Assertion error openCV

╄→尐↘猪︶ㄣ 提交于 2020-12-26 17:37:34
问题 I'm creating a script with opencv for detect game cards. As input image i give this one And i've wrote this for detect the cards contours import cv2 import numpy as np im = cv2.imread('/home/pero/PycharmProjects/image-recognition/python/cards.png') gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) blur = cv2.GaussianBlur(gray, (1, 1), 1000) flag, thresh = cv2.threshold(blur, 120, 255, cv2.THRESH_BINARY) contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) contours

getPerspectiveTransform Assertion error openCV

偶尔善良 提交于 2020-12-26 17:29:18
问题 I'm creating a script with opencv for detect game cards. As input image i give this one And i've wrote this for detect the cards contours import cv2 import numpy as np im = cv2.imread('/home/pero/PycharmProjects/image-recognition/python/cards.png') gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) blur = cv2.GaussianBlur(gray, (1, 1), 1000) flag, thresh = cv2.threshold(blur, 120, 255, cv2.THRESH_BINARY) contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) contours

How do I send OpenCV Mat as a putExtra to Android Intent?

亡梦爱人 提交于 2020-12-26 08:12:35
问题 I am trying to send either CvCameraViewFrame or Mat to another activity, but they don't implement Serializable or Parcelable and creating a wrapper class for them just to use it once seems like an overkill. How do I proceed? 回答1: I would have used fragments instead of activities and get/set common Mat present in container Activity from fragments. If there is a need to stick with multiple activities, assuming it's within process, options are Sharing - Use global Application subclass to get/set

How do I send OpenCV Mat as a putExtra to Android Intent?

陌路散爱 提交于 2020-12-26 08:12:24
问题 I am trying to send either CvCameraViewFrame or Mat to another activity, but they don't implement Serializable or Parcelable and creating a wrapper class for them just to use it once seems like an overkill. How do I proceed? 回答1: I would have used fragments instead of activities and get/set common Mat present in container Activity from fragments. If there is a need to stick with multiple activities, assuming it's within process, options are Sharing - Use global Application subclass to get/set

使用python-opencv批量生成带噪点噪线的数字验证码

扶醉桌前 提交于 2020-12-22 15:43:57
使用python-opencv批量生成带噪点噪线的数字验证码 文章目录 1.明确要使用的包 2.引入库 3.生成随机的颜色组合get_random_color() 4.生成颜色随机,数值随机的数字生成函数get_random_number() 5.随机生成一张干净的(不带噪声噪线)数字验证码图像 6.往图像添加噪声噪线 7.调用函数生成数字验证码图像 8.总结 第一次使用csdn写一个文章,如果有什么写的不对的地方,欢迎在下面评论指正,谢谢各位。 1.明确要使用的包 首先就是opencv的函数库,还有python自带的random和PIL(Image、ImageDraw、ImageFont),一般pthon3以上的版本都是内置安装的,如果没有安装可以通过pip install的方法安装具体操作如图: 输入完按回车键即可安装,因为我已经安装了,就不输入回车键了,安装完了之后可以通过import的方式检验是否安装成功。记住先输入python进入python的编程环境在输入import PIL,否则就会报错 2.引入库 代码如下(示例): import cv2 as cv import random from PIL import Image from PIL import ImageDraw from PIL import ImageFont 3.生成随机的颜色组合get_random

OpenCV 3.4.2 环境搭建(适用于Ubuntu 一键安装)

核能气质少年 提交于 2020-12-22 07:11:13
前面的话 最近决定要好好地学习一下OpenCV,Ubuntu系统上简单地搭建了OpenCV环境, (Windows的搭建方法移步到 window10的搭建方法 ) ,千里之行始于足下,不积跬步无以至千里,在这里记录一下搭建过程,顺便整理了自动安装的脚本,以备下次环境自动化搭建,有部分依赖可能没有涵盖,有需要的可以直接坐飞机到文件结尾下载脚本,在此与各位看官共勉。以下是本文的大致流程。 Start安装依赖下载源码编译安装编写测试代码End 安装依赖 opencv源码配置构建需要cmake,通过cmake生成makefile,同样,也需要安装GNU make工具,当然如果要使用别的构建工具也是同样可行的。 sudo apt-get update sudo apt-get install -y build-essential sudo apt-get install -y cmake sudo apt-get install -y cmake-qt-gui sudo apt-get install -y libgtk2.0-dev pkg-config sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install -y libjpeg-dev libpng-dev

图像特征提取(颜色,纹理,形状)

我的未来我决定 提交于 2020-12-22 05:21:35
点击上方 “ 小白学视觉 ”,选择加" 星标 "或“ 置顶 ” 重磅干货,第一时间送达 转自 | 新机器视觉 1.颜色特征提取 计算机视觉的特征提取算法研究至关重要。在一些算法中,一个高复杂度特征的提取可能能够解决问题(进行目标检测等目的),但这将以处理更多数据,需要更高的处理效果为代价。而颜色特征无需进行大量计算。只需将数字图像中的像素值进行相应转换,表现为数值即可。因此颜色特征以其低复杂度成为了一个较好的特征。 在图像处理中,我们可以将一个具体的像素点所呈现的颜色分多种方法分析,并提取出其颜色特征分量。比如通过手工标记区域提取一个特定区域(region)的颜色特征,用该区域在一个颜色空间三个分量各自的平均值表示,或者可以建立三个颜色直方图等方法。下面我们介绍一下颜色直方图和颜色矩的概念。 (1)颜色直方图: 颜色直方图用以反映图像颜色的组成分布,即各种颜色出现的概率。Swain和Ballard最先提出了应用颜色直方图进行图像特征提取的方法[40],首先利用颜色空间三个分量的剥离得到颜色直方图,之后通过观察实验数据发现将图像进行旋转变换、缩放变换、模糊变换后图像的颜色直方图改变不大,即图像直方图对图像的物理变换是不敏感的。因此常提取颜色特征并用颜色直方图应用于衡量和比较两幅图像的全局差。另外,如果图像可以分为多个区域,并且前景与背景颜色分布具有明显差异,则颜色直方图呈现双峰形。

通过AI,领略皮影戏艺术 | MixLab人工智能

ぐ巨炮叔叔 提交于 2020-12-19 07:30:33
Shadow_Art 一场颇具艺术风格的实验 这是一项 AI 实验,旨在颂扬中国古老的 皮影戏艺术 。 实验利用 TensorFlow.js,在互动游戏中将用户的手影转换成数字动物。 您可通过在笔记本电脑或手机摄像头前摆弄 “手型” ,形成十二生肖动物的手影。如果手影正确匹配,系统便会将手影转换成 相应动物 的动画影象。 技术上: 为了在浏览器上获取手部轮廓,会使用 OpenCV.js 通过摄像头从HTML5的<video> 标签捕捉出用户的手部图像,并对这些图像进行单独处理。 针对每张图像进行简单的 背景去除 ,以将前景对象(包括手和部分杂乱的背景)与背景对象进行分离。 在进行去除校准时,程序会从摄像头中不断采集图像,以 更新最新的背景对象 ,进而进一步对手势图像执行精细化的抠图操作。 执行完上述操作后,会处理裁剪出的手部图像进行 清除噪音 (包括轮廓归一化和重新采样),然后再 将图像填充为阴影 重新绘制到前端展示。 就这样,一组好玩儿又带有童趣的皮影戏就做好拉。 来一起体验下? - END - 对文中的 工具 感兴趣的小伙伴 公众号后台回复 “皮影” 即可使用 想要获得Github地址 请私聊小编 本文分享自微信公众号 - 无界社区mixlab(mix-lab)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”

YOLOv4(darknet版)后处理:显示置信度、保存检测框的内容到本地

和自甴很熟 提交于 2020-12-19 05:59:35
目录 显示置信度 改变检测框的粗细 保存检测框的内容到本地 1.修改detector.c 2.修改image.h和image.c 3.修改image_opencv.h和image_opencv.cpp 之前写了一篇使用YOLOv4训练的博客:https://blog.csdn.net/Creama_/article/details/106209388。然后很多读者反映检测图片的结果中怎么没有置信度,怎么加?怎么改变检测框的 粗细 ?框出来目标怎么保存到本地?等等。。。今天就先写一下这几部分的代码,希望作者AlexeyAB看到给我打钱。 显示置信度 打开src/image.c 查找"draw_detections_v3",找到这个函数的定义部分,注意是定义部分。拉到函数最后一部分,只要在对应位置加上三句: char buff[20]; sprintf(buff, "(%2.0f%%)", selected_detections[i].det.prob[selected_detections[i].best_class] * 100); strcat(labelstr, buff); 即可,然后保存,重新make。 if ( alphabet ) { char labelstr [ 4096 ] = { 0 } ; char buff [ 20 ] ; //加上这句 strcat (

python OpenCV与NAOqi库在机器人点球比赛中的应用

情到浓时终转凉″ 提交于 2020-12-17 13:47:31
前言 近期我省举办的机器人大赛刚刚落下帷幕,有幸参与其中的NAO机器人点球比赛,凭借着较好的运气取得了吉林省第一名。本文将从比赛的各个方面讲述所用程序及策略,所用程序代码如有不足之处,以及更好的逻辑优化,欢迎大家在评论区留言。 本文章不提供源代码,仅提供部分核心代码供大家交流学习。 完整代码后续会发到CSDN上供大家下载 NAO机器人点球比赛简介 简而言之,就是队伍分别担任进攻方和防守方,进攻方共三次机会,每次进球记一分,最后以得分数判别胜负。进攻方要求只能触球一次;守方无限制。并要求机器人具备 识别足球 的功能。 使用环境 python2.7(为了适应NAOqi库) NAOqi(本文不再过多介绍,更多信息请查阅我的前几篇文章) opencv 策略分析 由于比赛使用的是8mm的绿色草坪,NAO会由于草坪出现走路不稳的情况,我们采用了使用海报纸将nao机器人的脚包起来,降低机器人脚部与地面的摩擦,使机器人能在草坪上正常移动。 第二点,也是最重要的一点,所有的一切都是建立在让机器人 成功识别 的前提下进行的 。这里我们使用的是opencv中的霍夫圆检测搭配naoqi中的“ALVideoDevice”模块来调用nao的摄像头。这一点会在后面详细说明。 在机器人识别成功并且走到球附近后,根据球的相对位置,控制机器人进行微调,然后调用Choregraphe中预设好踢球的程序