2022/4/19

刚刚做了个升级版,就是第二种读取文件的方式,另外分函数写了

链接:

python opencv 简单图像识别,标注 [升级版]_死非死的博客-CSDN博客

____________________

第一步 导入库

import cv2 as cv
import matplotlib.pyplot as plt
import os

第二步 读取图像

要读取的就是这几张图像了

下面两种选一个,第一个直接用,第二个有列表索引需要改,懒得改

第一种: 指定文件名

path = r'C:\Users\Administrator\Desktop\python\mypic\peo\\'
​
name=['peo.jpg','man_face.jpg','man_face2.jpg','man_body1.jpg','man_body2.jpg']
imgs=[]
num=len(name)
hwl=[] # 存放 高 宽 L 属性
​
plt.figure(figsize=(10,10)) #  创建一个指定大小的画布
for i in range(num):# 导入图片imgs.append(cv.imread(path+name[i]))# 颜色转置 bgr 转换 rgb # 刚刚阅读 李立宗 的Opencv入门发现这一步完全是没必要的# 把 cv.imread('path',-1) 改成这样就行了b,g,r = cv.split(imgs[i])imgs[i]= cv.merge([r,g,b])# 获取 图像 高 宽 和 一个 L???,不确定,没用到第三个值hwl.append(imgs[i].shape)# 多余程序 展示一下图像plt.subplot(num,1,i+1)plt.imshow(imgs[i])

第二种: 获取文件名

前提: 所有 文件夹中只有 【检测】和【被检测】的 图像

问题:如何在众多文件中确认主图

思路: 指定主图文件名,if else 判断

注意不能直接套用下面的图像检测代码哦,一部分索引是需要修改的

我懒得改了,没写,只提供思路

path=r'图像路径\\'
img_name=os.listdir(path)
imgs=[]
# img_main=input('主题名称(带后缀名)')
img_main= '手动填 '
for name in img_name:if name==img_main:img_main=cv.imread(path+name)else:imgs.append(cv.imread(path+name))

如果图像命名是具有规律的,会更简单

展示一下,是否成功

for img in imgs:plt.figure()plt.imshow(img[:,:,::-1])

第三步 检测对比图像

ress=[] # 存放比对结果
minMaxLoc=[] # 存放 提取的对应坐标
top_left=[] # 存放图片在原图上的 左上角坐标
bottom_right=[] # 存放图片在原图上的右下角坐标
for i in range(1,num):#  进行检测对比 第三步ress.append(cv.matchTemplate(imgs[i],imgs[0],cv.TM_CCOEFF))# 从检测结果中提取 对应坐标  第四步minMaxLoc.append(cv.minMaxLoc(ress[i-1]))
​# 注 minMaxLoc 返回的是四个值,这里取第四个 因为使用的是 cv.TM_CCOEFF# 是一个坐标是相似位置矩形的 左上角坐标,top_left.append(minMaxLoc[i-1][3]) # 设置矩形框右下角点的坐标bottom_right.append((top_left[i-1][0]+hwl[i][1],top_left[i-1][1]+hwl[i][0]))# 在对应位置绘画矩形 ,画别的形状也行,但矩形经典,简单,形象cv.rectangle(imgs[0],top_left[i-1],bottom_right[i-1],(255,255,0),2)

第四步 展现图像

plt.figure(figsize=(10,10))
plt.imshow(imgs[0])
plt.show()

成果图像就是这个了

opencv 简单的图像检测,识别,标注,相关推荐

  1. JavaCV进阶opencv图像检测识别:摄像头图像人脸检测

    JavaCV免费教程目录: JavaCV入门教程(免费JavaCV教程) javacv实战专栏目录(2016年更新至今): JavaCV实战专栏文章目录(2016年更新至今) 2022年最新JavaC ...

  2. JavaCV进阶opencv图像检测识别:ffmpeg视频图像画面人脸检测

    JavaCV免费教程目录: JavaCV入门教程(免费JavaCV教程) javacv实战专栏目录(2016年更新至今): JavaCV实战专栏文章目录(2016年更新至今) 2022年最新JavaC ...

  3. 图像存储方式及使用OpenCV简单处理图像

    一.目的 简述图像存储方式及使用OpenCV简单处理图像. 二.图像存储方式 2.1.YUV 2.1.1.简介 YUV是编译true-color颜色空间(color space)的种类,Y'UV, Y ...

  4. opencv中关于轮廓检测识别Contours及相关函数的介绍

    最近在用vs和opencv库在做图像处理的项目,关于轮廓识别部分,我查阅了一些资料, 现结合自己的理解整理出来,希望能对你有用. 1.contours概述 在利用openCV对图像进行处理时,我们可能 ...

  5. Opencv 图像增强算法 图像检测结果及代码

    **************************************************************************************************** ...

  6. PaddleOCR,图像检测识别

    简介 OCR(optical character recognition)文字识别是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,然后用字符识别方法将形状翻译成计算机文字的过程:即,对文本资料 ...

  7. 基于Matlab答题卡图像检测识别研究

    考试是教育测量的重要手段,也是目前选拔人才 的重要手段.所以公平.公正就显得非常重要,这不仅 体现在考试的过程中,还体现在评卷的过程中.以前, 这些试卷都是进行人工翻阅批改,其中评卷老师的水 平.状态 ...

  8. opencv简单方式红绿灯状态识别

    前言:代码用于识别一个固定视角下的视频中的红绿灯的状态. 做法:先将原视频转为灰度视频,这样就不用区分颜色,划定出需要的感兴趣区域,判断感兴趣区域的值,得出那个区域的灯在量,得出此时红绿灯的实时状态. ...

  9. php 人像识别,基于OpenCV的PHP图像人脸识别技术

    本文所介绍的技术不是原创,而是从一个叫Robert Eisele的德国人那里学习来的.他写了一个PHP扩展openCV,只封装了两个函数,叫face_detect和face_count. openCV ...

最新文章

  1. ES6变量常量字符串数值
  2. 最小乘积生成树和最小乘积最大匹配
  3. Android开发人员官方站点文档 - 国内踏得网镜像
  4. oracelp---随意 记录(nvl)
  5. Guava Cache用法介绍
  6. Feature Extractor[DenseNet]
  7. Java-顺序表和链表
  8. 架构设计(3)---架构师到底要做什么,他们需要掌握些什么?
  9. 漏洞扫描工具Vulmap
  10. [转载] python while循环 打印菱形
  11. 【元胞自动机】基于matlab元胞自动机森林大火【含Matlab源码 235期】
  12. html 文字 转 语音,把文字变成语音的软件
  13. win10系统迁移后系统重装_怎样将Win10系统转移到SSD固态硬盘
  14. 3_寻找假币问题(分治法)
  15. USB之:MTKUSB软件框架及其MassStorage Class规范学习
  16. 艾比森发布新一代高端Micro LED微间距显示产品
  17. java什么是this_java中的this是什么
  18. 云服务器如何完整地卸载mysql
  19. 第一次视频面试给了小米前端
  20. Java基础文档,图文并茂+代码实例

热门文章

  1. 用户维度表与商店维度表
  2. 重庆大学和四川大学计算机考研,西南地区最好的4所大学, 重庆大学第三, 第一无争议, 第二最难考...
  3. 2021年金属非金属矿井通风考试题及金属非金属矿井通风模拟考试题
  4. rdp远程连接windows和linux,详解 Linux 和 Windows 间的远程桌面访问
  5. impdp 并行_IMPDP 开启归档模式下如何提高导入速度 - 墨天轮问答
  6. laravel config文件配置全局变量
  7. 有着“火眼金睛”的人脸识别技术
  8. SOLD格雷母线 有哪些优势?
  9. pmd java_用PMD自动执行Java代码静态分析
  10. tp5上一篇下一篇;php上一篇下一篇