当前位置: 首页 > article >正文

【杂记】机器视觉 #opencv #numpy #matplotlib

1、开运算

开运算就是先腐蚀再膨胀的去除噪点活动


2、设置掩膜的时候,bgr转hsv用到的inRange里的上下限范围要用到ndarray格式


 3、opencv读取颜色并非RGB而是BGR格式,必要时要转义

import cv2
import numpy as np
import matplotlib.pyplot as plt

img=cv2.imread('san2.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

img_r =np.zeros_like(img)
img_g =np.zeros_like(img)
img_b =np.zeros_like(img)


R=img[:,:,0]
G=img[:,:,1]
B=img[:,:,2]

img_r[:,:,0]=R
img_g[:,:,1]=G
img_b[:,:,2]=B

plt.subplot(232)
plt.imshow(img)
plt.subplot(234)
plt.imshow(img_r)
plt.subplot(235)
plt.imshow(img_g)
plt.subplot(236)
plt.imshow(img_b)
plt.show()


 4、计算机识别图片的坐标是横向x,纵向y(下为正方向),和三维数组的表示不同,三维数组的axis=0为纵向,1为横向

案例


5、二值化的threshold函数在调用时返回值有两个要注意,一个是阈值一个是图片的多维数组


6、框选图片区域获取颜色并且显示字体,putText函数

import cv2


img=cv2.imread('./win.png')

x,y,w,h=cv2.selectROI('1',img)
m=img[y:y+h,x:x+w]
img_blur=cv2.GaussianBlur(m,(5,5),0)

img_hsv=cv2.cvtColor(img_blur,cv2.COLOR_BGR2HSV)

colors=[]


yellow_count = blue_count = green_count =white_count=0
for i in range(h):
    for j in range(w):
        H,S,V=img_hsv[i,j]
        if 11<=H<=34 and S>43:
            yellow_count+=1
        elif 35<=H<=99 and S>43:
            green_count+=1
        elif 100<=H<=124 and S>43:
            blue_count+=1
        elif 0<=H<=180 and S<30:
            white_count+=1
color='no'
if yellow_count*2>=w*h:
    color='yellow'
elif green_count*2>=w*h:
    color='green'
elif blue_count*2>=w*h:
    color='blue'
elif white_count*2>=w*h:
    color='white'

img_t=cv2.putText(
    m,
    color,
    (h//3,w//3),
    cv2.FONT_HERSHEY_SIMPLEX,
    1.5,
    (0,0,0),
    2
)


cv2.imshow('0',img_t)
cv2.waitKey(0)


http://www.kler.cn/a/472708.html

相关文章:

  • STM32供电参考设计
  • 基于视觉惯性 SLAM(VSLAM)、相机和 IMU 数据的融合执行 6 自由度位姿跟踪
  • 『SQLite』如何使用索引来查询数据?
  • 计算机网络基础——网络协议
  • reducer同步,dispatch异步
  • Three.js - 打开Web 3D世界的大门
  • 自闭症家庭:建立支持系统与平衡生活
  • QML学习(九) Qt Quick - Control2中的主要组件:Label组件和Button组件的属性和使用方法
  • 机器学习模型评估指标
  • 页面转 PDF 功能的实现思路与使用方法
  • 【算法】八大排序算法
  • PostgreSQL 插件的事务回调机制
  • 怎么把word试题转成excel?
  • 在windows系统上安装docker并自定义安装和数据存储位置
  • No Homebrew ruby 2.6.3_2 available for arm64 processors!
  • 微软Office存在的意义是什么?
  • 【深度学习量化交易12】基于miniQMT的量化交易框架总体构建思路——回测、模拟、实盘通吃的系统架构
  • 显示器太薄怎么用屏幕挂灯?2025最新屏幕挂灯什么牌子好
  • 如何在 LobeChat 中使用 Ollama
  • 《网络安全里的Linux基础:构建安全网络的关键基石》
  • Python爬虫基础——数据清洗
  • python虚拟环境的使用
  • 【2024华为OD-E卷-200分-会议接待】(题目+思路+JavaC++Python解析)
  • Pytorch学习12_最大池化的使用
  • Elastic-Job相关
  • 案例解读 | 香港某多元化综合金融企业基础监控+网管平台建设实践