opencv 图片处理

opencv 图片像素操作

  • 取像素点操作
  • 设置像素点
  • 取图片块
  • 分离,合并 b, g, r
import numpy as np
import cv2 as cvimg = cv.imread('/Users/guoyinhuang/Desktop/G77.jpeg')# 获取像素值
px = img[348, 120]  # 0 是y, 1 是x
print(px)blue = img[100, 100, 0]
print(blue)
cv.namedWindow('img', 0)# 更改像素值
img[100, 100] = [255, 255, 255]
print(img[100, 100])
# 更好的获取像素值
img.item(10, 10, 2)
img.itemset((10, 10, 2), 100)vg = img.item(10, 10, 2)
print(vg)print(img.size)print(img.dtype)ball = img[708:1142, 680:930]
img[571:1005, 240:490] = ball# 分离合并 b,g,r
b, g, r = cv.split(img)
img = cv.merge((b,g,r))
print(b)b = img[:, :, 0]
img[:, :, 2] = 0
cv.imshow('img', img)
cv.waitKey(0)
cv.destoryAllWindows()

opencv 改变彩色空间

import cv2 as cv
import numpy as npflags = [i for i in dir(cv) if i.startswith('COLOR_')]
print(flags)cap = cv.VideoCapture(0)
while True:_, frame = cap.read()hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)lower_blue = np.array([110, 50, 50])upper_blue = np.array([130, 255, 255])mask = cv.inRange(hsv, lower_blue, upper_blue)res = cv.bitwise_and(frame, frame, mask=mask)cv.imshow('frame', frame)cv.imshow('mask', mask)cv.imshow('res', res)k = cv.waitKey(5) & 0xFFif k == 27:break
cv.destroyAllWindows()

这是物体追踪最简单的方法, 当你学习了关于轮廓的方法, 你可以做更多丰富的事情:例如找到物体质心并利用它追踪物体

opencv 图片的几何旋转操作

  • 缩放
  • 位移
  • 平面旋转
  • 仿射旋转
  • 透视旋转
import numpy as np
import cv2 as cv
from matplotlib import pyplot as pltimg = cv.imread('/Users/guoyinhuang/Desktop/G77.jpeg')
# res = cv.resize(img, None, fx=2, fy=2, interpolation=cv.INTER_CUBIC)
# cv.namedWindow('img', 0)
# # OR
# height, width = img.shape[:2]
# res = cv.resize(img, (2*width, 2*height), interpolation=cv.INTER_CUBIC)# translation
# rows, cols = img.shape[:2]
# M = np.float32([[1, 0, 100], [0, 1, 50]])
# dst = cv.warpAffine(img, M, (cols, rows))# Rotation
# rows, cols = img.shape[:2]
# M = cv.getRotationMatrix2D(((cols - 1)/2.0, (rows - 1)/2.0), 90, 1)
# dst = cv.warpAffine(img, M, (cols, rows))# Affine Transformation
rows, cols, ch = img.shape
pts1 = np.float32([[50, 50], [200, 50], [50, 200]])
pts2 = np.float32([[10, 100], [200, 50], [100, 250]])
M = cv.getAffineTransform(pts1, pts2)
dst = cv.warpAffine(img, M, (cols, rows))
plt.subplot(121), plt.imshow(img), plt.title('Input')
plt.subplot(122), plt.imshow(dst), plt.title('0utput')
plt.show()# perspective Transformation 透视旋转
rows, cols, ch = img.shape
pts1 = np.float32([[56, 65], [368, 52], [28, 387], [389, 390]])
pts2 = np.float32([[0, 0], [300, 0], [0, 300], [300, 300]])
M = cv.getPerspectiveTransform(pts1, pts2)
dst = cv.warpPerspective(img, M, (300,300))
plt.subplot(121), plt.imshow(img), plt.title('Input')
plt.subplot(122), plt.imshow(dst), plt.title('Output')
plt.show()# cv.imshow('img', dst)
cv.waitKey(0)
cv.destroyAllWindows()

opencv(二) 图片处理相关推荐

  1. image vb6 图片自适应_Python人工智能使用OpenCV进行图片形状的中心检测

    我们都知道正方形(长方形)的中心是2条对角线的交点,圆的中心是一个圆的圆心,如何在对象检测以及图片检测与识别领域,判断一个形状的中心,便是计算机视觉领域中的一个基础检测 中心检测 Opencv+pyt ...

  2. ctf 改变图片高度_每天一分钟,python一点通(opencv的图片处理方法)

    有网友私信小编说,小编的文章很好,讲解的也很详细,但是有些知识点很深奥,对初学者不是很友好,回想小编的文章虽然几乎每条代码都有介绍,但是很多函数没有太详细,小编后期会重启 <每天一分钟,pyth ...

  3. python切割图片文字_Python+opencv 实现图片文字的分割的方法示例

    Python+opencv 实现图片文字的分割的方法示例 发布时间:2020-08-26 03:28:37 来源:脚本之家 阅读:116 作者:坏小孩90 实现步骤: 1.通过水平投影对图形进行水平分 ...

  4. 【OpenCV】图片几何特征提取

    [OpenCV]图片几何特征提取 2016年08月16日 16:57:18 番茄发烧了 阅读数:673 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net ...

  5. 通过opencv在图片上加上文字_基于Ubuntu16

    本文主要介绍,如何通过**C++**语言在Ubuntu操作系统下的OpenCV中将一个图片叠加上文字 通过opencv在图片上叠加上文字 一.汉字点阵字库原理 1.汉字的三种编码 1.1区位码 1.2 ...

  6. Python OpenCV去除图片水印

    问题描述 去除百度水印 1.jpg,背景简单 2.jpg,背景复杂 解决方案 安装 pip install opencv-python pip install numpy 方法一.OpenCV提取颜色 ...

  7. 利用OpenCV识别图片背景是否透明

    因为公司的需求,有几百万张图片需要识别,筛选出背景是透明的图片,我上网找了一圈也没看到成熟的方案,于是自己想了一个比较简陋但是还算是挺好用的方案. 大概的图片就是这些种类吧,图一图三是我想要筛选出来的 ...

  8. python opencv图像二值化函数_python opencv 二值化 计算白色像素点的实例

    python opencv 二值化 计算白色像素点的实例 贴部分代码 #! /usr/bin/env python # -*- coding: utf-8 -*- import cv2 import ...

  9. 基于Ubuntu系统,调用opencv在图片上显示数字和汉字

    文章目录 一.汉字编码的介绍 1.汉字编码的发展过程 (1)汉字编码产生的原因 (2)常用的汉字编码 2.区位码 (1)产生原因 (2)概念简述 (3)区域分布情况 3.机内码 (1)基本概念 (2) ...

最新文章

  1. Linux下修改PATH环境变量
  2. 参数等效模型可以用于_等效媒质理论(介电参数反演)
  3. 百度 和 AI教父Hinton 的故事
  4. Open×××整合OpenLDAP
  5. 以连咖啡为例丨设计小程序的流量裂变体系
  6. 使用CXF 2.7.5出现的java.lang.RuntimeException: Cannot create a secure XMLInputFactory错误解决...
  7. mysql的空间查询函数_MYSQL空间查询函数
  8. python之yield
  9. Python:SyntaxError: unexpected EOF while parsing
  10. 物联网标准组织OCF成立 有望解决碎片化问题
  11. 数字图像处理matlab 版下载,数字图像处理(MATLAB版)
  12. VMware密匙安装教程
  13. ubuntu20.04下QT安装
  14. 计算机联锁维修管理机,计算机联锁试卷
  15. 小程序分享功能实现php,微信小程序转发好友的功能
  16. IGBT最小死区时间计算
  17. MQ-2烟雾传感器模块功能实现(STM32)
  18. Bugly使用记录——异常上报
  19. HP DV2000 内存升级3G成功
  20. P1936 水晶灯火灵

热门文章

  1. 网络层:构成超网(CIDR)
  2. 线程创建-结束-回收 教程
  3. Linux本地yum源配置以及使用yum源安装各种应用程序
  4. Spark快速入门指南 – Spark安装与基础使用
  5. 计算机房的英语用谐音怎么读,“人机对话”学英语 发音不准就过不了电脑关...
  6. python sendline_python Pexpect模块的使用
  7. 「一本通 6.4 例 4」曹冲养猪(CRT)
  8. TortoiseGit上传项目到GitHub
  9. es6的Map()构造函数
  10. python学习:re模块