这两种算法在它们可以检测到什么和不能检测到什么方面都有起伏。
OpenCV在后台用C++编程,作为一个机器学习包,用来分析python中的图像模式。
Skimage也被称为Scikit-Image,是一个机器学习包,用于图像预处理以发现隐藏模式。
这两个平台都是最好的吗?
建议在基于服务器的笔记本上使用OpenCV,比如Google CoLab,或者Google云、Azure云甚至IBM中的笔记本扩展。
而对于Skimage来说,即使是Jupyter Lab/Notebook也工作得很好,因为它在处理方面没有OpenCV那么重。
使用Skimage分析面部数据的Python代码
from skimage import data
from skimage.feature import Cascade
import matplotlib.pyplot as plt
from matplotlib import patches
# Load the trained file from the module root.
trained_file = data.lbp_frontal_face_cascade_filename()
# Initialize the detector cascade.
detector = Cascade(trained_file)
img = data.astronaut()
detected = detector.detect_multi_scale(img=img,
scale_factor=1.2,
step_ratio=1,
min_size=(60, 60),
max_size=(90, 500))
plt.imshow(img)
img_desc = plt.gca()
plt.set_cmap('gray')
for patch in detected:
img_desc.add_patch(
patches.Rectangle(
(patch['c'], patch['r']),
patch['width'],
patch['height'],
fill=False,
color='r',
linewidth=2
)
)
plt.show()
# We have detected a face using Skimage in python
因此,我们在这里看到了如何在python中使用Skimage检测人脸和推断图像。
使用OpenCV分析数据的Python代码
from google.colab import drive
在这里,我们使用OpenCV上传了一张图片
eye_detector = cv2.CascadeClassifier('/content/drive/MyDrive/haarcascade_frontalcatface.xml')
在这里,我们使用OpenCV中的Hascade参数技术来检测其中一个人脸,该参数可以调整为检测所有人脸。
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/27/%e7%94%a8%e4%ba%8e%e5%9b%be%e5%83%8f%e5%88%86%e6%9e%90%e7%9a%84opencv%e4%b8%8eskimage%e3%80%82%e5%93%aa%e4%b8%80%e4%b8%aa%e6%9b%b4%e5%a5%bd%ef%bc%9f/