opencv学习笔记3——图像缩放,翻转和阈值分割
#图像的缩放操作
#cv.resize(src,dsize,dst=None,,fx=None,fy=None,interpolation=None)
#src->原图像,dsize->目标图像的大小(列*行(和其他API不同),fx->相对于原图的水平轴比列,fy->相对于原图的竖直轴的比例
#interpolation—>插入方式 )(一般dsize和fxfy只设其一,会自动推算另一个)
image = cv.imread("E:/pictures/1.jpeg",cv.IMREAD_UNCHANGED)
rows,cols,chn = image.shape
image2 = cv.resize(image,(round(cols*1),round(rows*1.2))) #cv.round()为四舍五入取整函数
cv.imshow("orginal",image)
cv.imshow("resize",image2)
cv.waitKey()
cv.destroyAllWindows()
#图像翻转 cv.flip(src,flipCode) src->原始图像 filpCode->翻转方式
#翻转方式有三种 0是水平翻转 >0表示绕垂直轴翻转 <0表示绕原点翻转 (只是这样说其实并没有xy坐标轴 :))
image = cv.imread("E:/pictures/1.jpeg")
image2 = cv.flip(image,-1)
#image3 = cv.flip(image,0)
#image4 = cv.flip(image,1)
cv.imshow("orginal",image)
cv.imshow("flip",image2)
cv.waitKey()
cv.destroyAllWindows()
图像的阈值分割:

五种阈值分割方法 (分别对应上图的2~6):(主要是为了对灰度图像去噪)
- 二值阈值化:将大于阈值的像素置位设置的最大值,小于的设为0
- 反二值阈值化:将大于阈值的像素置为0,小于的置为255
- 截断阈值化:大于阈值的像素置为阈值,小于的不变
- 阈值化为0,:将大于阈值的置为0,小于的不变
- 反阈值化为0:将小于阈值的置为0,大于的不变






(以上图片结果是按顺序排列的。。。。。。)
#图像的阈值分割 retval,dst = cv.threshold(src,thresh,maxval,type)
#retval 阈值 dst 结果图 ,src 原图 thresh 阈值 ,maxval 最大值 ,type 分割方式
img = cv.imread("E:/pictures/lena.jpg",cv.IMREAD_GRAYSCALE)
r1,b1 =cv.threshold(img,128,255,cv.THRESH_BINARY) #二值阈值化 (将亮的变为最大,暗的变为0)
r2,b2 =cv.threshold(img,128,255,cv.THRESH_BINARY_INV) #反二值阈值化 (将亮的变为0,暗的变为最大)
r3,b3 =cv.threshold(img,128,255,cv.THRESH_TRUNC) #截断阈值化 (将亮的变为阈值)
r4,b4 =cv.threshold(img,128,255,cv.THRESH_TOZERO) #阈值化为0 (将亮的变为0,暗的不变)
r5,b5 =cv.threshold(img,128,255,cv.THRESH_TOZERO_INV) #反阈值化为0 (将暗的变为0,亮的不变)
cv.imshow("orginal",img)
cv.imshow("BINARY",b1)
cv.imshow("BINARY_INV",b2)
cv.imshow("TRUNC",b3)
cv.imshow("TOZERO",b4)
cv.imshow("TOZERO_INV",b5)
cv.waitKey()
cv.destroyAllWindows()
opencv学习笔记3——图像缩放,翻转和阈值分割的更多相关文章
- [OpenCV学习笔记3][图像的加载+修改+显示+保存]
正式进入OpenCV学习了,前面开始的都是一些环境搭建和准备工作,对一些数据结构的认识主要是Mat类的认识: [1.学习目标] 图像的加载:imread() 图像的修改:cvtColor() 图像的显 ...
- OpenCV学习笔记(10)——图像梯度
学习图像梯度,图像边界等 梯度简单来说就是求导. OpenCV提供了三种不同的梯度滤波器,或者说高通滤波器:Sobel,Scharr和Lapacian.Sobel,Scharr其实就是求一阶或二阶导. ...
- OpenCV学习笔记(7)——图像阈值
简单阈值,自适应阈值,Otsu's二值化等 1.简单阈值 当像素值高于阈值时,我们给这个像素赋予一个新值,否则给他赋予另一个值.这个函数就是cv2.threshhold().这个函数的第一个参数就是原 ...
- opencv学习笔记(七)---图像金字塔
图像金字塔指的是同一图像不同分辨率的子图的集合,有向下取样金字塔,向上取样金字塔,拉普拉斯金字塔....它是图像多尺度表达的一种,最主要的是用于图像的分割 向下取样金字塔指高分辨率图像向低分辨率图像的 ...
- opencv学习笔记(六)---图像梯度
图像梯度的算法有很多方法:sabel算子,scharr算子,laplacian算子,sanny边缘检测(下个随笔)... 这些算子的原理可参考:https://blog.csdn.net/poem_q ...
- opencv学习笔记(五)----图像的形态学操作
图像的形态学操作有基本的腐蚀和膨胀操作和其余扩展形态学变换操作(高级操作)-----开运算,闭运算,礼帽(顶帽)操作,黑帽操作...(主要也是为了去噪声,改善图像) 形态学操作都是用于处理二值图像(其 ...
- OpenCV学习笔记(3)——图像的基本操作
获取图像的像素值并修改 获取图像的属性(信息) 图像的ROI() 图像通道的拆分及合并 1.获取并修改像素值 先读入图像装入一个图像实体,然后该实体相当于一个多维list,可以直接用数组操作提取像素信 ...
- (转) OpenCV学习笔记大集锦 与 图像视觉博客资源2之MIT斯坦福CMU
首页 视界智尚 算法技术 每日技术 来打我呀 注册 OpenCV学习笔记大集锦 整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的 ...
- OpenCV 学习笔记 02 使用opencv处理图像
1 不同色彩空间的转换 opencv 中有数百种关于不同色彩空间的转换方法,但常用的有三种色彩空间:灰度.BRG.HSV(Hue-Saturation-Value) 灰度 - 灰度色彩空间是通过去除彩 ...
随机推荐
- 成都国嵌-嵌入式linux必修实验手册…
emouse收集整理,转载请注明: emouse的技术专栏 博客园:http://www.cnblogs.com/emouse/ CSDN:http://blog.csdn.net/haozi_198 ...
- ParksLink修改密码
设置环境变量: ?set classpath=D:\ptc\PartsLink\srclib\jmxcore\WtLogR.jar;D:\ptc\PartsLink\srclib\log4j.jar; ...
- codeforce 461DIV2 F题
题意 题目给出n,k,要求找出一个1到n的子集,(a,b)的对数等于k:(a,b)满足a<b且b%a==0: 分析 还记不记得求素数的时候的欧拉筛!对就那样!如果把每个数字看作一个点的话,可以通 ...
- Docker01 centos系统安装、centos安装docker、docker安装mongoDB
1 centos系统安装 本博文是基于 centos6.5 的,利用VMware 虚拟机搭建 centos6.5 系统 1.1 centos6.5资源获取 1.2 安装 1.2.1 新建虚拟机 1.2 ...
- opencv3 图片模糊操作-均值滤波 高斯滤波 中值滤波 双边滤波
#include <iostream>#include <opencv2/opencv.hpp> using namespace std;using namespace cv; ...
- 使用RVM更新Ruby 版本
http://rvm.io/rvm/install Install RVM (development version): \curl -sSL https://get.rvm.io | bash Wi ...
- c语言学习笔记-if语句块一定要加分号
if(a>6) printf("hello");//语句1 printf("world");//语句2 当a>6的时候,执行的分支语句是语句1,而不 ...
- R语言的并行运算(CPU多核)
通常R语言运行都是在CPU单个核上的单线程程序.有时我们会有需求对一个向量里的元素应用相同的函数,最终再将结果合并,并行计算可以大幅节约时间. 为了支持R的并行运算, parallel包已经被纳入了R ...
- Luogu 2868 [USACO07DEC]观光奶牛Sightseeing Cows
01分数规划复习. 这东西有一个名字叫做最优比率环. 首先这个答案具有单调性,我们考虑如何检验. 设$\frac{\sum_{i = 1}^{n}F_i}{\sum_{i = 1}^{n}T_i} = ...
- Smarty3——foreach
foreach and foreachelse篇 foreach用于遍历数组,可以是非关联数组,与section相比要简单些,在smarty3中可以接受没有名称的属性,也可以使用smarty2有名称 ...