opencv 图像基本操作 获取图像大小、ROI操作、通道分割与合并等

opencv中的图像基本操作方法

访问和修改图像某像素点的值

函数

a=img[y,x] #获取像素点的值

img[y,x]=b #修改像素点的值

实例

import cv2 as cv
import numpy as np

img = cv.imread(‘baby.png‘)
px = img[50,100]
print(px)	# output:[76,94,94]

# 只获取图像蓝色通道的值
img[50,100] = [0,0,255]
print(px)	# output:[0,0,255]

获取图像属性

获取图像形状

height, width, channels = img.shape

获取图像的数据类型

img.dtype #图像数据类型一般为uint8

获取图像总像素数

img.size # height x width x channels

ROI(Region of Interest)

讲解ROI

ROI即感兴趣区域。它是用来干什么的呢?举个例子,我们想检测人眼,这里有一张人的全身照。因为人的眼睛一定在人脸上,我们可以将ROI调整为人脸区域。这样,在进行检测时,检测的范围大大缩小,可以有效地提高程序的运行效率。

ROI实现

face = img[100:200,115:188]

通道分割与合并

彩色图的BGR三个通道是可以分开单独访问的,也可以将三个单独的通道合并成一幅图像。分别使用 cv.split() 和 cv.merge()

b,g,r = cv.split(img)

img = cv.merge((b,g,r))

split() 函数比较耗时,我们可以使用索引来完成快速分割

b = img[ :, :, 0] #获取图像蓝色通道

原文地址:https://www.cnblogs.com/wojianxin/p/12588190.html

时间: 2024-08-12 21:49:54

opencv 图像基本操作 获取图像大小、ROI操作、通道分割与合并等的相关文章

机器学习进阶-图像基本操作-边界补全操作 1.cv2.copyMakeBoder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REPLICATE) 进行边界的补零操作 2.cv2.BORDER_REPLICATE(边界补零复制操作)...

1.cv2.copyMakeBoder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REPLICATE) 参数说明: img表示需要补零的图片, top_size, bottom_size, left_size, right_size表示需要补零的尺寸, cv2.BORDER_REPLICATE表示补零的方式,这个是复制 2. 补零的方式说明 cv2.BORDER_REPLICATE: 进行复制的补零操作, 只对边缘

【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析(转)

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20911629 作者:毛星云(浅墨)    邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本: 2.4.8 在这篇文章里,我们一起学习了在OpenCV中如何定义感兴趣区域ROI,如何使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像

opencv学习(5)图像像素的访问、颜色通道的分离和融合

代码都是源于毛星云的<opencv3.0编程入门> 1.计时函数 getTickCount()和getTickFrequency()函数: getTickCount()函数返回CPU自某个事件以来走过的时钟周期: getTickFrequency()函数 返回CPU一秒所走的周期数: 事例: double time0=static_cast< double>(getTickCount()); //记录起始时间 // 事件的处理操作 time0=((double)getTickCou

【OpenCV入门教程之五】 分离颜色通道&amp;多通道图像混合

上篇文章中我们讲到了使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像混合操作. 而为了更好的观察一些图像材料的特征,有时需要对RGB三个颜色通道的分量进行分别显示和调整.通过OpenCV的split和merge方法可以很方便的达到目的. 一.分离颜色通道 就让我们来详细介绍一下这两个互为冤家的函数.首先是进行通道分离的split函数. <1>split函数详解 将一个多通道数组分离成几个单通道数组.ps:这里的array按

OpenCV之图像基本操作

图像的输入输出 C风格的操作: const char *pstrImageName = "秽土转生第七版.jpg"; const char *pstrWindowsTitle = "窗口标题"; //从文件中读取图像 IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED); //创建窗口 cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOS

Opencv中图像的遍历与像素操作

Opencv中图像的遍历与像素操作 OpenCV中表示图像的数据结构是cv::Mat,Mat对象本质上是一个由数值组成的矩阵.矩阵的每一个元素代表一个像素,对于灰度图像,像素是由8位无符号数来表示(0代表黑,255代表白):对于彩色图像,每个像素是一个三元向量,即由三个8位无符号数来表示三个颜色通道(Opencv中顺次为蓝.绿.红). 我们先来介绍下cv::Mat类的获取像素的成员函数at(),其函数原型如下: template<typename _Tp> _Tp& at(int i0

opencv学习笔记(01)——操作图像的像素

1 #include <opencv2\core\core.hpp> 2 #include <opencv2\highgui\highgui.hpp> 3 #include <opencv2\imgproc\imgproc.hpp> 4 #include <iostream> 5 6 7 void salt(cv::Mat& image, int n) 8 { 9 10 for(int k=0; k<n; k++) 11 { 12 13 int

[转]OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放

[OpenCV入门教程之十三]OpenCV图像金字塔:高斯金字塔.拉普拉斯金字塔与图片尺寸缩放 2014-05-18 18:58 36007人阅读 评论(54) 收藏 举报 本文章已收录于:  OpenCV知识库 本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 知乎:http

【OpenCV入门教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 知乎:http://www.zhihu.com/people/mao-xing-yun 邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本: 2.4.9 这篇文章里,我们将一起探讨图像金字塔的一