thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]
# 腐蚀和膨胀操作
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
morphed = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel)
# 轮廓检测
contours, hierarchy = cv2.findContours(morphed, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
contours = sorted(contours, key=cv2.contourArea, reverse=True)[:10]
board_contour = None
for c in contours:
# 近似轮廓
peri = cv2.arcLength(c, True)
approx = cv2.approxPolyDP(c, 0.015 * peri, True)
# 检测到轮廓具有四个点,则假设为棋盘轮廓
if len(approx) == 4:
board_contour = approx
break
# 棋盘角点坐标
board_corners = cv2.perspectiveTransform(board_contour, cv2.getPerspectiveTransform(board_contour,
[[0, 0], [0, 360], [360, 0], [360, 360]]))
# 棋盘定位显示
board_area = cv2.drawContours(board_area.copy(), [board_contour.astype(int)], -1, (0, 255, 0), 2)
board_area = cv2.drawContours(board_area, [board_corners.astype(int)], -1, (0, 0, 255), 5)
# 显示结果
cv2.imshow('image', img)
cv2.imshow('board', board_area)
cv2.waitKey(0)
cv2.destroyAllWindows()
基于
opencv
实现
象棋
识别
及
棋谱
定位
python
源码
+数据集(含代码注释)人工智能课程设计.zip
基于
opencv
实现
象棋
识别
及
棋谱
定位
python
源码
+数据集(含代码注释)人工智能课程设计.zip基于
opencv
实现
象棋
识别
及
棋谱
定位
python
源码
+数据集(含代码注释)人工智能课程设计.zip
【备注】主要针对正在做毕设的同学和需要项目实战的深度学习cv图像
识别
模式
识别
方向学习者。
也可作为课程设计、期末大作业。包含:项目
源码
,该项目可直接作为毕设使用。
也可以用来学习、参考、借鉴。如果基础不错,在此代码上做修改。
基于
OpenCV
的级联分类器
识别
中国
象棋
棋子
python
源码
+
象棋
分类数据集+项目说明+注释拉满.zip
【项目资源介绍】
使用
OpenCV
的级联分类器
识别
中国
象棋
棋子
OpenCV
级联分类器模型训练
文件夹内容:
Dataset_Red_Black文件夹保存了采集的棋子图片,是经过灰度化及中值滤波后的图片,红色棋子和黑色棋子图片分开保存,每种颜色7类棋子,每类棋子经筛选后保留200张各种角度的图片。
model_save文件夹保存了使用上述数据集训练好的级联分类器模型,包括红色棋子分类模型Red_Chess.yml和黑色棋子分类模型Black_Chess.yml,该模型可在recognize.py中直接使用。
TestPicture文件夹保留了4张用于测试的图片,检测模型分类的准确率。
各py文件功能:
getDataSet.py:
运行该程序,手动转动棋子,采集棋子各角度图片用于训练模型。
train.py:
使用级联分类器训练分类模型。
recognize.py:
测试模型效果,TestPicture文件夹中有几张测试图片,也可直接处理摄像头实时画面。
基于
Python
+
OpenCV
人脸
识别
设计与
实现
简介 随着社会信息化的发展。 基于人的脸部特征信息进行身份
识别
的一种生物
识别
技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部
识别
的一系列相关技术,通常也叫做人像
识别
、面部
识别
本系统主要基于基于
Python
的人脸
识别
。
涉及技术 1.采用Mysql数据库
实现
数据存储。 2.使用
Python
设计开发。
系统软件环境 1.系统:win10 2.语言:
Python
3.6 3.平台:Jupyter Notebook 4.机器学习库:
OpenCV
5.数据库:Mysql 6.机器学习算法:SVM 用到的
Python
库:matplotlib、numpy、
opencv
、sklearn,这些库通过pip install package安装即可
主要功能及分工建议 1.人脸采集 2.人脸图像处理 3.人脸图像特征提取、匹配与
识别
建议由4个同学完成,1位同学负责人脸采集及检测;1位同学负责人脸图像处理;1位同学负责人脸图像特征提取、匹配与
识别
,1位同学负责整体框架设计,测试对应等功能。
CascadeClassifier faceClassifier = new CascadeClassifier("haarcascade_frontalface_default.xml");
5.在一个循环中,不断捕获图像,并进行人脸检测和
识别
while (true)
// 捕获一帧图像
Mat frame = new Mat();
capture.Read(frame);
// 将图像转换为灰度图像
Mat grayFrame = new Mat();
CvInvoke.CvtColor(frame, grayFrame, ColorConversion.Bgr2Gray);
// 检测人脸
Rectangle[] faces = faceClassifier.DetectMultiScale(grayFrame, 1.2, 10);
// 遍历检测到的人脸
foreach (Rectangle face in faces)
// 在人脸周围画一个矩形框
CvInvoke.Rectangle(frame, face, new MCvScalar(0, 0, 255));
// 显示处理后的图像
CvInvoke.Imshow("camera", frame);
// 按下 Esc 键退出循环
if (CvInvoke.WaitKey(1) == 27)
break;
// 释放资源
capture.Dispose();
CvInvoke.DestroyAllWindows();
以上就是使用 C# 基于
OpenCV
实现
人脸
识别
的基本步骤,需要注意的是,这只是一个基础的示例,
实现
人脸
识别
还需要更复杂的算法和模型。
CSDN-Ada助手:
用C#实现一个字模点阵提取程序
CSDN-Ada助手: