机器视觉Python代码
时间: 2023-12-25 21:28:41 浏览: 37
由于机器视觉的应用范围非常广泛,因此机器视觉的Python代码也非常多样化。以下是一个简单的例子,用于检测图像中的人脸:
```python
import cv2
# 加载人脸检测器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 加载图像
img = cv2.imread('test.jpg')
# 将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 在图像中标记人脸
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
# 显示图像
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这个例子使用了OpenCV库来进行人脸检测。首先加载了一个人脸检测器,然后加载了一张图像,并将其转换为灰度图像。接着使用人脸检测器检测人脸,并在图像中标记出人脸的位置。最后显示图像。
相关问题
机器视觉尺寸测量python代码
以下是一个简单的机器视觉尺寸测量Python代码示例:
```python
import cv2
# 读取图像
image = cv2.imread('image.jpg')
# 定义测量区域,在此例中,我们将测量矩形框的宽度和高度
x, y, w, h = 100, 100, 200, 300
# 标记测量区域
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
# 测量矩形框的宽度和高度
width = w
height = h
# 在图像上显示测量结果
cv2.putText(image, "Width: {} pixels".format(width), (x, y-10),
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
cv2.putText(image, "Height: {} pixels".format(height), (x, y+h+20),
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
# 显示图像
cv2.imshow("Image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在此示例中,我们首先读取图像,然后定义了一个测量区域,即一个矩形框。我们使用OpenCV的`rectangle`函数将矩形框标记在图像上。
接下来,我们测量矩形框的宽度和高度,并将结果显示在图像上。最后,我们使用`imshow`函数显示图像,并等待用户按下任意键以关闭窗口。
请注意,此代码示例仅适用于简单的尺寸测量。要进行更复杂的测量,例如测量多个对象的尺寸或进行角度测量,需要使用更高级的机器视觉技术和算法。
cnn机器学习python代码
卷积神经网络(Convolutional Neural Network,CNN)是一种常用于图像识别和计算机视觉任务的深度学习模型。下面是一个简单的使用Python实现CNN的代码示例:
```python
import tensorflow as tf
from tensorflow.keras import layers
# 创建CNN模型
model = tf.keras.Sequential()
# 添加卷积层
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
# 添加全连接层
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
# 编译模型
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
# 加载数据集
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 数据预处理
x_train = x_train.reshape(-1, 28, 28, 1) / 255.0
x_test = x_test.reshape(-1, 28, 28, 1) / 255.0
# 训练模型
model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
# 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print('Test accuracy:', test_acc)
```
这段代码使用了TensorFlow和Keras库来构建和训练一个简单的CNN模型,用于对手写数字进行分类。代码中包括了卷积层、池化层和全连接层等常用的CNN组件。