#一.读取图像数据
import cv2 img=cv2.imread("d:/image0.JPG") #读取图片数据
print(img)
cv2.imshow('image',img) #显示窗口数据
cv2.waitKey(0) #等待延迟
cv2.destroyAllWindows()

print(img) #打印像素值通道

从这个结果可以出:现在每个像素都由一个三元素组表示,并且每个整型(integer)向量

分别表示一个B,G,R通道。其他色彩空间(如hsv)也以同样地方式来表示像素,只是取值范围和通道数目不同
(例如,hsv)
print(img.shape)#打印通道

读取图像处理

cv2.IMREAD_COLOR:彩色图像

cv2.IMREAD_GRAYSCALE:灰度图像

灰度图像处理

import  cv2 as cv
import numpy as np img1=cv.imread("d:/image0.JPG",cv.IMREAD_GRAYSCALE) #读取灰图片数据
print(img1)
print(img1.shape)
cv.imshow('image',img1) #显示窗口数据
cv.waitKey(0) #等待延迟
cv.destroyAllWindows()

结果可以和色彩图像对比

二,数据读取-视频

cv2.VideoCapture可以捕获摄像头,用数字来控制不同的设备,例如0,1。

如果是视频文件,直接指定好路径即可。

import  cv2 
vc=cv2.VideoCapture(0)  #打开摄像头
if vc.isOpened(): #判断摄像头状态
open ,frame=vc.read()
else:
open=False
while open:
ret,frame=vc.read() #frame帧率
if frame is None:
break
if ret==True:
gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) #灰色处理
cv2.imshow("result",gray)
    if cv2.waitKey(10)& 0xFF==27:
break vc.release()
cv2.destroyAllWindows()

读取摄像头并且设置为灰色模式

剪切图像

import cv2
img=cv2.imread("d:/image0.JPG")
flower=img[0:200,0:200] #剪切图像
cv2.imshow('image',flower) #显示窗口数据
cv2.waitKey(0) #等待延迟
cv2.destroyAllWindows()

颜色通道地提取只保留r通道

import cv2
img=cv2.imread("d:/image0.JPG")
b,g,r=cv2.split(img)
print(b)
#只保留b结果
cur_img=img.copy()
cur_img[:,:,0]=0
cur_img[:,:,1]=0
cv2.imshow('image',cur_img) #显示窗口数据
cv2.waitKey(0) #等待延迟
cv2.destroyAllWindows()

颜色通道地提取只保留g通道

import cv2
img=cv2.imread("d:/image0.JPG")
b,g,r=cv2.split(img)
print(b)
#只保留b结果
cur_img=img.copy()
cur_img[:,:,0]=0
cur_img[:,:,2]=0
cv2.imshow('image',cur_img) #显示窗口数据
cv2.waitKey(0) #等待延迟
cv2.destroyAllWindows()

颜色通道地提取只保留b通道

import  cv2
img=cv2.imread("d:/image0.JPG")
b,g,r=cv2.split(img)
print(b)
#只保留b结果
cur_img=img.copy()
cur_img[:,:,1]=0
cur_img[:,:,2]=0
cv2.imshow('image',cur_img) #显示窗口数据
cv2.waitKey(0) #等待延迟
cv2.destroyAllWindows()

边界填充

BORDER_REPLICATE:复制法,也就是复制最边缘像素。

BORDER_REFLECT:反射法,对感兴趣的图像中的像素在两边进行复制例如:fedcba|abcdefgh|hgfedcb

BORDER_REFLECT_101:反射法,也就是以最边缘像素为轴,对称,gfedcb|abcdefgh|gfedcba

BORDER_WRAP:外包装法cdefgh|abcdefgh|abcdefg

BORDER_CONSTANT:常量法,常数值填充。

import cv2
import matplotlib.pyplot as plt
img=cv2.imread("d:/cat.JPG")
top_size,bottom_size,left_size,right_size = (50,50,50,50) replicate = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE)
reflect = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size,cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT_101)
wrap = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_WRAP)
constant = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size,cv2.BORDER_CONSTANT, value=0)
plt.subplot(231), plt.imshow(img, 'gray'), plt.title('ORIGINAL')
plt.subplot(232), plt.imshow(replicate, 'gray'), plt.title('REPLICATE')
plt.subplot(233), plt.imshow(reflect, 'gray'), plt.title('REFLECT')
plt.subplot(234), plt.imshow(reflect101, 'gray'), plt.title('REFLECT_101')
plt.subplot(235), plt.imshow(wrap, 'gray'), plt.title('WRAP')
plt.subplot(236), plt.imshow(constant, 'gray'), plt.title('CONSTANT') plt.show()

数值计算

import cv2
img=cv2.imread("d:/image0.JPG")
img_flower=img+10 #所有通道数值+10
print(img[:5,:,0])
print(".........................")
print(img_flower[:5,:,0])

 

当数值超过256时会以%256地形式展示通道数据

print(".........................")
print((img_flower+img)[:5,:,0])

 

 

opencv-python图像处理基础(一)的更多相关文章

  1. 【图像处理】OpenCV+Python图像处理入门教程(四)几何变换

    这篇随笔介绍使用OpenCV进行图像处理的第四章 几何变换. 4  几何变换 图像的几何变换是指将一幅图像映射到另一幅图像内.有缩放.翻转.仿射变换.透视.重映射等操作. 4.1  缩放 使用cv2. ...

  2. 【图像处理】OpenCV+Python图像处理入门教程(五)阈值处理

    这篇随笔介绍使用OpenCV进行图像处理的第五章 阈值处理. 5  阈值处理 阈值是指像素到达某临界值.阈值处理表示像素到达某临界值后,对该像素点进行操作和处理. 例如:设定一幅图像素阈值为200,则 ...

  3. 【图像处理】OpenCV+Python图像处理入门教程(六)图像平滑处理

    相信很多小伙伴都听过"滤波器"这个词,在通信领域,滤波器能够去除噪声信号等频率成分,然而在我们OpenCV中,"滤波"并不是对频率进行筛选去除,而是实现了图像的 ...

  4. 【图像处理】OpenCV+Python图像处理入门教程(七)图像形态学操作

    图像形态学主要从图像内提取分量信息,该分量信息通常对表达图像的特征具有重要意义.例如,在车牌号码识别中,能够使用形态学计算其重要特征信息,在进行识别时,只需对这些特征信息运算即可.图像形态学在目标视觉 ...

  5. Opencv python图像处理-图像相似度计算

    一.相关概念 一般我们人区分谁是谁,给物品分类,都是通过各种特征去辨别的,比如黑长直.大白腿.樱桃唇.瓜子脸.王麻子脸上有麻子,隔壁老王和儿子很像,但是儿子下巴涨了一颗痣和他妈一模一样,让你确定这是你 ...

  6. python 图像处理基础操作

    Python 读取图片文件为矩阵和保存矩阵为图片 读取图片为矩阵 import matplotlib im = matplotlib.image.imread('0_0.jpg') 保存矩阵为图片 i ...

  7. Python图像处理丨OpenCV+Numpy库读取与修改像素

    摘要:本篇文章主要讲解 OpenCV+Numpy 图像处理基础知识,包括读取像素和修改像素. 本文分享自华为云社区<[Python图像处理] 二.OpenCV+Numpy库读取与修改像素> ...

  8. Python 图像处理 OpenCV (9):图像处理形态学开运算、闭运算以及梯度运算

    前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...

  9. Python 图像处理 OpenCV (10):图像处理形态学之顶帽运算与黑帽运算

    前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...

  10. Python 图像处理 OpenCV (12): Roberts 算子、 Prewitt 算子、 Sobel 算子和 Laplacian 算子边缘检测技术

    前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...

随机推荐

  1. View 的绘制过程

    配合Activity 从启动到布局绘制的简单分析 阅读 基本概念介绍 Activity:一个 Activity 是一个应用程序组件,提供一个屏幕,用户可以用来交互. View:所有视图控件的基类 Vi ...

  2. git 常用操作汇总

    1. 如何查看当前分支是从哪个分支创建来的?  git reflog --date=local 当前分支名称 2. 查看当前分支 git branch 当前分支前面会显示 * 号  3.切换到某个分支 ...

  3. 安装SDK 6.0(二)

    2==>安装SDK 6.0 打开安卓Android Studio 出现 Unable to access Android SDK add-on list 点击 Cancal 在点击Cancel ...

  4. 使用SC命令操作(安装、开启、配置、关闭、删除)Windows下的服务

    目录 一.直接使用cmd命令行操作windows服务 二.使用bat批处理-操作windows服务 一.直接使用cmd命令行操作windows服务 1.安装服务 sc create 服务名 binPa ...

  5. Elon Mask 写作常见的三种错误

    (其实非常的文不对题,这篇文章和写作的并没有多大的关系,如果是想看关于写作的技巧,可以直接离开,节省您的时间) 这是原文 写作就是在把你自身的想法用正确,合适的方式表达出来,但是不正确的表达可能会导致 ...

  6. 番茄助手 最新 Visual Assist X 适应于VS2019 VS2017 VS2015 VS2013 亲测可用

    番茄助手 最新 Visual Assist X 适应于VS2019 VS2017 VS2015 VS2013 亲测可用 如图: 颜色已经改变: 下载说明: /* INSTALLATION 0) Uni ...

  7. 某酒店建筑设计CAD施工图

    本素材为某酒店建筑设计CAD施工图,其中包涵的有酒店室内装修图纸.各个标间房屋改造图以及酒店场外建筑施工图.其中图纸的格式都是为dwg格式的.想要查看图纸就可以使用CAD看图软件来进行查看.以下就是一 ...

  8. TSC打印机防重码在线检测系统

    条码标签作为产品的一个身份标识,被应用得越来越普及,但随着使用量的增大,在打印条码流水号的过程中,偶尔会出现打印重复号码的标签出现,这样对产品生产及管理过程中会产生极大的混乱,会收到严重的客诉及返工, ...

  9. Android Studio 第一个Android项目

    创建步骤 Start a new Android Studio project 选择 Empty Activity   设置Android项目的名称.位置,开发语言 打开初始界面 初步认识Androi ...

  10. PWA学习笔记(二)

    设计与体验 APP Shell: 1.应用从显示内容上可粗略划分为内容部分和外壳部分,App Shell 就是外壳部分,即页面的基本结构 2.它不仅包括用户能看到的页面框架部分,还包括用户看不到的代码 ...