opencv学习笔记1
#对图像的像素处理
#法1
print("------------------------")
image = cv.imread("D:/1.jpeg",cv.IMREAD_UNCHANGED)
cv.imshow("original image",image)
image[100:150,100:150] = [255,255,255] #对感兴趣图像进行像素处理
cv.imshow("changed image",image)
cv.waitKey(0)
cv.destroyAllWindows()
#法2
print("----------------HELLO------------------")
image = cv.imread("D:/1.jpeg",cv.IMREAD_UNCHANGED)
print(image.item(100,100,0))
image.itemset((100,100,0),255)
print(image.item(100,100,0))
#图像的一些基本属性
print("------------------HELLO-----------------")
image1 = cv.imread("D:/1.jpeg",cv.IMREAD_GRAYSCALE)
image2 = cv.imread("D:/1.jpeg",cv.IMREAD_UNCHANGED)
print(image1.shape) #shape返回图像的行数,列数和通道数(灰度图像为1,不显示)
print(image2.shape)
print(image1.size) #size返回图像的总像素个数,即行数*列数*通道数
print(image2.size)
print(image1.dtype) #dtype返回图像像素点的类型
print(image2.dtype)
#POI区域的图像处理
print("-----------------HELLO-----------------")
image = cv.imread("E:/pictures/1.jpeg")
image2 = np.ones((100,100,3)) #创建一个100行100列3通道全为1的二维数组,即一幅图像
image2 = image[100:300,100:300] #把原图的第100~300行100~300列的内容复制到新建的图像上
image[0:200,0:200] = image2 #把POI区域复制到原图的等大小区域内
cv.imshow("orginal",image)
cv.imshow("face",image2)
image3 = cv.imread("E:/pictures/2.jpeg")
image3[100:300,100:300] = image2
cv.imshow("new",image3)
cv.waitKey(0)
cv.destroyAllWindows()
#通道的分离和组合
print("------------------HELLO-----------------------")
image = cv.imread("E:/pictures/1.jpeg",cv.IMREAD_UNCHANGED)
cv.imshow("orginal",image)
b,g,r = cv.split(image) #split方法返回图像的3个通道的图像,类似于灰度图像
"""
rows,cols,chn = image.shape #可以指定下标以得到想要通道的像素情况
b = np.zeros((rows,cols),image.dtype) #新建单通道的和原图像等大小,等类型的全为0的图像
g = cv.split(image)[1]
r = np.zeros((rows,cols),image.dtype)
"""
cv.imshow("B",b)
cv.imshow("G",g)
cv.imshow("R",r)
m = cv.merge([b,g,r]) #merge方法可以组合通道形成多通道图像,但要注意顺序【B,G,R】和【R,B,G】不同
cv.imshow("merge",m)
cv.waitKey(0)
cv.destroyAllWindows()
opencv学习笔记1的更多相关文章
- opencv学习笔记(七)SVM+HOG
opencv学习笔记(七)SVM+HOG 一.简介 方向梯度直方图(Histogram of Oriented Gradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子 ...
- opencv学习笔记(六)直方图比较图片相似度
opencv学习笔记(六)直方图比较图片相似度 opencv提供了API来比较图片的相似程度,使我们很简单的就能对2个图片进行比较,这就是直方图的比较,直方图英文是histogram, 原理就是就是将 ...
- opencv学习笔记(五)镜像对称
opencv学习笔记(五)镜像对称 设图像的宽度为width,长度为height.(x,y)为变换后的坐标,(x0,y0)为原图像的坐标. 水平镜像变换: 代码实现: #include <ios ...
- opencv学习笔记(四)投影
opencv学习笔记(四)投影 任选了一张图片用于测试,图片如下所示: #include <cv.h> #include <highgui.h> using namespace ...
- opencv学习笔记(三)基本数据类型
opencv学习笔记(三)基本数据类型 类:DataType 将C++数据类型转换为对应的opencv数据类型 OpenCV原始数据类型的特征模版.OpenCV的原始数据类型包括unsigned ch ...
- opencv学习笔记(二)寻找轮廓
opencv学习笔记(二)寻找轮廓 opencv中使用findContours函数来查找轮廓,这个函数的原型为: void findContours(InputOutputArray image, O ...
- opencv学习笔记(一)IplImage, CvMat, Mat 的关系
opencv学习笔记(一)IplImage, CvMat, Mat 的关系 opencv中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是,M ...
- paper 93:OpenCV学习笔记大集锦
整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的.如果有好的资源,也欢迎介绍和分享. 1:OpenCV学习笔记 作者:CSDN数量:55篇博文网址: ...
- (转) OpenCV学习笔记大集锦 与 图像视觉博客资源2之MIT斯坦福CMU
首页 视界智尚 算法技术 每日技术 来打我呀 注册 OpenCV学习笔记大集锦 整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的 ...
- OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
http://blog.csdn.net/chenyusiyuan/article/details/8710462 OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波 201 ...
随机推荐
- SDL_AudioSpec(转)
转贴地址:http://www.cnblogs.com/nanguabing/archive/2012/04/12/2444084.html ============================= ...
- 10 个你需要了解的 Linux 网络和监控命令
我下面列出来的10个基础的每个linux用户都应该知道的网络和监控命令.网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nsloo ...
- jenkins 学习记录1
主题 以前自己做些小玩意儿比如博客(http://blogv3.labofjet.com/)的时候,在远程服务器上的tomcat发布工程用的是目录的结构,而不是war.原因很简单.用目录结构的话每次只 ...
- ansible命令详解
查看ansible版本 import ansible print(ansible.__version__) 命令参数 -m:要执行的模块,默认为command -a:模块的参数 -u:ssh连接的用户 ...
- JSP,PHP详细性能测试
前几天在CU看到有人比较PHP与JSP,.net,结果表明PHP比JSP,.net性能低下很多.本人认为即使有差距,也不应该有这么大,所以认真测试一下几者间的性能差距.由于很久没用.net了,所以,暂 ...
- nohup 无发后台运行
用nohup命令让Linux下程序永远在后台执行 [ 2006-5-13 22:31:54 | By: 牧云 ] Unix/Linux下一般想让某个程序在后台运行,很多都是使用 & 在 ...
- 【总结整理】微信产品-张小龙-PM学习总结
伟大的产品可以满足人类的情感需求.找到需求背后的心理诉求产品的终极目标是满足任性需求,不在产品中掺杂自己的道德感.“我有个好主意”,往往都是脱离用户需求的. 1,不直接满足用户需求2,用户需求是零散的 ...
- hadoop 2.7.3 (hadoop2.x)使用ant制作eclipse插件hadoop-eclipse-plugin-2.7.3.jar
为了做mapreduce开发,要使用eclipse,并且需要对应的Hadoop插件hadoop-eclipse-plugin-2.7.3.jar,首先说明一下,在hadoop1.x之前官方hadoop ...
- CF407B Long Path
好玩的题. 首先我们(看一下题解之后)发现当你第一次走到了一个点的时候,那么它之前的所有点一定都访问过了偶数次. 假设我们第一次走到了一个点$i$,那么$i - 1$一定访问了偶数次,那么第一次走$i ...
- 第十九课 pluginlib&Nodelet
把rgb摄像头的数据转换为laser的时候使用了Nodelet. pluginlib(插件库) 在ros中有一个plugin的包,下面是一个ROS Plugin Registration的例子 上面包 ...