Python+OpenCV:精准截取两张图片黄色圈并对比偏移量!
要使用 OpenCV 截取两张图片中间的黄色圈并对比偏移量,大致需要以下步骤: 1. 图像预处理 - 将图像转换到合适的颜色空间,例如 HSV 颜色空间,以便更好地提取黄色区域。 2. 提取黄色区域 - 设置合适的 HSV 阈值来识别黄色。 3. 形态学操作 - 对提取的黄色区域进行形态学操作,如开运算、闭运算等,以去除噪声和填充空洞。 4. 寻找轮廓 - 使用 `findContours` 函数找到黄色区域的轮廓。 5. 确定黄色圈 - 根据轮廓的特征(如面积、周长等)筛选出可能的黄色圈。 6. 截取黄色圈 - 根据确定的黄色圈的位置和大小,从原图像中截取。 7. 对比偏移量 - 对于两张图片截取的黄色圈,可以通过计算它们的中心坐标或其他特征点的坐标差异来确定偏移量。 以下是一个简单的示例代码,展示了部分关键步骤,假设已经读取了两张图片 `image1` 和 `image2` : ```python import cv2 import numpy as np # 将图像转换到 HSV 颜色空间 hsv1 = cv2.cvtColor(image1, cv2.COLOR_BGR2HSV) hsv2 = cv2.cvtColor(image2, cv2.COLOR_BGR2HSV) # 设置黄色的 HSV 阈值范围 lower_yellow = np.array([20, 100, 100]) upper_yellow = np.array([30, 255, 255]) # 提取黄色区域 mask1 = cv2.inRange(hsv1, lower_yellow, upper_yellow) mask2 = cv2.inRange(hsv2, lower_yellow, upper_yellow) # 形态学操作 kernel = np.ones((5, 5), np.uint8) mask1 = cv2.morphologyEx(mask1, cv2.MORPH_OPEN, kernel) mask2 = cv2.morphologyEx(mask2, cv2.MORPH_OPEN, kernel) # 寻找轮廓 contours1, _ = cv2.findContours(mask1, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) contours2, _ = cv2.findContours(mask2, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 确定黄色圈 # 这里需要根据轮廓的特征筛选出黄色圈,示例中假设面积较大的轮廓为黄色圈 areas1 = [cv2.contourArea(c) for c in contours1] max_area_index1 = np.argmax(areas1) yellow_circle1 = contours1[max_area_index1] areas2 = [cv2.contourArea(c) for c in contours2] max_area_index2 = np.argmax(areas2) yellow_circle2 = contours2[max_area_index2] # 计算黄色圈的中心坐标 M1 = cv2.moments(yellow_circle1) cx1 = int(M1['m10'] / M1['m00']) cy1 = int(M1['m01'] / M1['m00']) M2 = cv2.moments(yellow_circle2) cx2 = int(M2['m10'] / M2['m00']) cy2 = int(M2['m01'] / M2['m00']) # 计算偏移量 offset_x = cx2 - cx1 offset_y = cy2 - cy1 ``` 这只是一个简单的示例,实际应用中可能需要更复杂的处理来准确提取和对比黄色圈的偏移量,例如处理多个黄色圈、更精确的轮廓筛选等。 ######[AI写代码神器 | 876点数解答 | 2024-08-10 10:13:17]
- Python程序模拟公安车牌识别预警:精准锁定嫌疑人车辆( | 458点数解答 | 2024-05-05 18:31:11)330
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)489
- Java代码:基于图像计算物体与相机距离及偏移量的实现(讯飞星火 | 253点数解答 | 2024-07-27 09:18:40)284
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)442
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)435
- 数字化制图综合平台:助力企业转型,推动烟草物流图纸智能化设计 (字节豆包 | 490点数解答 | 2024-10-30 20:30:29)158
- 数字化制图综合平台:引领烟草物流及多领域设计革新 在企业数字化转型的时代浪潮中,数字化制图技术创新应用成为产业升级与提升竞争力的关键。企业对高效、精准、智能化设计解决方案需求迫切,构建集二维到三维正逆向工程快捷化、干涉检测可视化、设备明细数据提取自动化以及设备模块模型库于一体的综合平台意义重大。 此平台集成先进数字化制图工具与智能算法,可实现二维设计到三维建模的无缝转换,大大缩短设计周期。正逆向工程能快速切换,满足不同场景设计需求。内置干涉检测功能可实时监测设计潜在冲突,保障设计方案可行与安全。设备明细数据自动提取提高设计准确性与效率。设备模块模型库为设计师提供丰富资源,支持设计标准化与模块化,加速项目推进。 整体来看,该综合平台的应用极大促进了烟草物流行业及更广泛领域的技术创新与效率提升。在烟草物流方案图纸智能化设计中,它提升了图纸设计效率与质量,使设计工作更加高效、精准。对于企业而言,这一平台带来显著竞争优势,能帮助企业在数字化转型中脱颖而出,在激烈的市场竞争中占据有利地位,推动整个行业向更高效、更智能的方向发展。 (阿里通义 | 216点数解答 | 2024-10-30 20:30:51)188
- VBA 代码:双击特定单元格为数据区内容按条件标色及注意事项(字节豆包 | 942点数解答 | 2024-12-07 18:07:56)333
- OpenCV.js 轻松实现图片识别:详细步骤全解析 ( | 824点数解答 | 2024-03-22 16:22:16)204
- OpenCV.js 实战:轻松识别图片中电梯轮廓( | 1193点数解答 | 2024-03-22 16:23:32)219
- 用 C++ 和 OpenCV 生成带随机偏移的圆周上的点:代码剖析(字节豆包 | 29点数解答 | 2024-11-06 23:40:42)271
- 用Python轻松将PPT每页转为图片,附代码示例!(阿里通义 | 315点数解答 | 2024-04-23 10:01:04)1386