Advertisement

图像处理与机器视觉

阅读量:

目录

1.图像处理与机器视觉的概念:

2.图像处理与机器视觉的区别与共同点:

3.机器视觉与深度学习的关系:

4.机器视觉在行业的应用:

总结

人脸识别并绘制代码


1.图像处理与机器视觉的概念:

图像处理:这是对图像进行的数字处理过程,主要目的是提取和改变图像的某些特征,或实现对图像的增强、修复和改变。图像处理涵盖了多个步骤,包括图像输入(将物理图像转换为数字信息)、图像预处理(提升后续处理效果)、图像特征提取(从图像中提取有意义的信息以便后续识别和分类)等。它利用技术如图像增强、滤波、降噪、边缘检测等来优化图像质量,使特征更突出,便于人类和计算机的分析。

机器视觉:这是利用计算机视觉技术实现自动识别、检测、测量等目标的过程。它涵盖了图像输入、图像处理、图像识别、图像分类、目标检测和目标追踪等多个环节。机器视觉通过模拟人类视觉过程,实现对视觉信息的处理、理解和决策,从而为人类和计算机提供有用的信息。

2.图像处理与机器视觉的区别与共同点:

区别:图像处理主要关注对图像本身的优化和改变,而机器视觉则更侧重于从图像中提取信息并进行理解、分析和决策。简言之,图像处理是机器视觉过程中的一个重要环节,但机器视觉涉及的范围更广,包括了对处理后的图像信息的进一步理解和应用。

共同点:两者都涉及图像的数字化处理和分析,都需要利用数学、信号处理和计算机技术等工具。此外,它们的最终目标都是为了提取有用的信息,帮助人类和计算机更好地理解和处理图像。

3.机器视觉与深度学习的关系:

深度学习是一种人工智能技术,它通过模仿人类大脑神经网络的结构和功能来进行模式识别和决策。在机器视觉中,深度学习可以用于特征提取、分类等任务,以提高算法的准确性和效率。例如,在人脸识别中,深度学习可以帮助提取人脸图像的特征并进行分类。

然而,虽然深度学习在机器视觉中有着重要的应用,但它并不是机器视觉的必要条件。机器视觉还可以使用其他算法和技术来实现视觉处理和理解。

4.机器视觉在行业的应用:

机器视觉在众多行业中都有广泛的应用,包括ADAS(高级驾驶辅助系统)、AGV(自动引导车)、安防、工业、消费等。例如,在工业领域,机器视觉可以用于自动检测产品质量,提高生产效率;在安防领域,它可以用于人脸识别、行为分析等任务,提高安全性。

资料来源方面,由于机器视觉是一个涉及多个领域的交叉学科,相关的学术文献、行业报告以及技术博客等都是了解和应用机器视觉的重要资源。此外,许多科技公司和研究机构也在积极推动机器视觉技术的发展和应用,他们的技术文档和产品案例也是很好的参考资料。

总结

综上所述,图像处理与机器视觉在概念、应用和技术上都有所区别,但它们又密切相关,共同构成了计算机视觉领域的重要组成部分。同时,深度学习为机器视觉提供了新的技术和方法,但并非其唯一或必要的解决方案。随着技术的不断发展,机器视觉将在更多行业中发挥重要作用,为人类生活带来更多便利和安全。

人脸识别并绘制代码

复制代码
 import face_recognition

    
 import cv2
    
  
    
 '''****************BEGIN****************'''
    
  
    
 # 加载已知图片
    
 known_image_c_path = "./step4/known_image/Caocao.jpg"
    
 known_image_xy_path = "./step4/known_image/XunYu.jpg"
    
 known_image_smy_path = "./step4/known_image/SiMayi.jpg"
    
 known_image_zch_path = "./step4/known_image/ZhangChunhua.jpg"
    
  
    
  
    
 known_image_cc = face_recognition.load_image_file(known_image_c_path)
    
 known_image_xy = face_recognition.load_image_file(known_image_xy_path)
    
 known_image_smy = face_recognition.load_image_file(known_image_smy_path)
    
 known_image_zch = face_recognition.load_image_file(known_image_zch_path)
    
  
    
  
    
 '''**************** END ****************'''
    
  
    
 '''****************BEGIN****************'''
    
  
    
 # 对图片进行编码,获取128维特征向量
    
  
    
 caocao_encoding = face_recognition.face_encodings(known_image_cc)[0]
    
 xy_encoding = face_recognition.face_encodings(known_image_xy)[0]
    
 zys_encoding = face_recognition.face_encodings(known_image_smy)[0]
    
 cyz_encoding = face_recognition.face_encodings(known_image_zch)[0]
    
  
    
  
    
  
    
 '''**************** END ****************'''
    
  
    
 '''****************BEGIN****************'''
    
  
    
 # 存为数组以便之后识别
    
 known_faces = [
    
     caocao_encoding,
    
     xy_encoding,
    
     zys_encoding,
    
     cyz_encoding
    
 ]
    
  
    
 '''**************** END ****************'''
    
  
    
 '''****************BEGIN****************'''
    
  
    
 # 加载待识别图片
    
 unknown_image_1_path = "./step4/unknown_image/Caocao.jpg"
    
 unknown_image_2_path = "./step4/unknown_image/Cuple.jpg"
    
 unknown_image_3_path = "./step4/unknown_image/ZhangChunhua.jpg"
    
 unknown_image_4_path = "./step4/unknown_image/XunYu.jpg"
    
 unknown_image_5_path = './step4/unknown_image/A.jpg'
    
  
    
 unknown_image_1 = face_recognition.load_image_file(unknown_image_1_path)
    
 unknown_image_2 = face_recognition.load_image_file(unknown_image_2_path)
    
 unknown_image_3 = face_recognition.load_image_file(unknown_image_3_path)
    
 unknown_image_4 = face_recognition.load_image_file(unknown_image_4_path)
    
 unknown_image_5 = face_recognition.load_image_file(unknown_image_5_path)
    
  
    
  
    
  
    
 '''**************** END ****************'''
    
  
    
 '''****************BEGIN****************'''
    
  
    
 # 存为数组以遍历识别
    
 unknown_faces = [
    
     unknown_image_1,
    
     unknown_image_2,
    
     unknown_image_3,
    
     unknown_image_4,
    
     unknown_image_5
    
 ]
    
 '''**************** END ****************'''
    
  
    
 # 初始化一些变量
    
 face_locations = []
    
 face_encodings = []
    
 face_names = []
    
 frame_number = 0
    
  
    
 for frame in unknown_faces:
    
     face_names = []
    
  
    
     '''****************BEGIN****************'''
    
     # 获取人脸区域位置
    
     face_locations = face_recognition.face_locations(frame)
    
     # 对图片进行编码,获取128维特征向量
    
     face_encodings = face_recognition.face_encodings(frame, face_locations)
    
  
    
     '''**************** END ****************'''
    
  
    
     for face_encoding in face_encodings:
    
  
    
     '''****************BEGIN****************'''
    
     # 识别图片中人脸是否匹配已知图片
    
  
    
     match = face_recognition.compare_faces(known_faces, face_encoding,tolerance=0.5)
    
  
    
     '''**************** END ****************'''
    
  
    
     '''****************BEGIN****************'''
    
  
    
     name = None
    
     if match[0]:
    
         name = "Caocao"
    
     elif match[1]:
    
         name = "XunYu"
    
     elif match[2]:
    
         name = "SiMayi"
    
     elif match[3]:
    
         name = 'ZhangChunhua'
    
     else:
    
         name = 'Unknown'
    
  
    
     '''**************** END ****************'''
    
  
    
     face_names.append(name)
    
  
    
     # 结果打上标签
    
     for (top, right, bottom, left), name in zip(face_locations, face_names):
    
     if not name:
    
         continue
    
  
    
     '''****************BEGIN****************'''
    
  
    
     # 绘制脸部区域框
    
     cv2.rectangle(frame, (left, top), (right, bottom),(0, 0, 255), 2)
    
  
    
     # 在脸部区域下面绘制人名
    
     cv2.rectangle(frame, (left, bottom - 25),
    
                   (right, bottom), (0, 0, 255), cv2.FILLED)
    
     font = cv2.FONT_HERSHEY_DUPLEX
    
     cv2.putText(frame, name, (left + 6, bottom - 6),
    
             font, 0.5, (255, 255, 255), 1)
    
  
    
     '''**************** END ****************'''
    
  
    
     print(frame[left+6, bottom-6])
    
     print(frame[left, bottom])
    
  
    
     print(face_locations)
    
     print(face_names)
    
     # 保存图片
    
     image_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    
     path = './step4/out/' + name + str(face_locations[0][0]) + '.jpg'
    
     cv2.imwrite(path, image_rgb)
    
    
    
    
    python
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-17/6BEWqxG1VJoH2rpiveIzTfFnAcZ8.png)

全部评论 (0)

还没有任何评论哟~