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) 灰度 - 灰度色彩空间是通过去除彩 ...
随机推荐
- POJ3624(背包问题)
1.题目链接地址 http://poj.org/problem?id=3624 2.源代码 #include<iostream> using namespace std; #define ...
- Timer的缺陷
- HDR
[HDR] 什么是 HDR? 高动态范围拍摄(HDR)现在已经得到广泛使用,被用来补偿大多数数码成像传感器有限的动态范围.照片的动态范围是指最暗的色彩与最亮的色彩之间的亮度范围——也可以一并表示色调范 ...
- Hadoop之MapReduce(一)简介及简单案例
简介 Hadoop MapReduce是一个分布式运算编程框架,基于该框架能够容易地编写应用程序,进而处理海量数据的计算. MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算. ...
- java基础之多线程三:多线程并发同步
由于线程的执行是CPU随机调度的,比如我们开启10个线程,这10个线程并不是同时执行的,而是CPU快速的在这10个线程之间切换执行,由于切换速度极快使我们感觉同时执行罢了. 线程同步问题往往发生在多个 ...
- Log4j配置很详细
来自: http://www.blogjava.net/zJun/archive/2006/06/28/55511.html Log4J的配置文件(Configuration File)就是用来设置记 ...
- c++之继承与派生
再来回顾下继承派生的语法. 继承方式显示有三种(public, protected, privatez),隐式默认private.所谓继承方式,是指派生类对基类成员的访问权限控制. 派生类构造函数定义 ...
- Tensorflow学习(练习)—下载骨骼图像识别网络inception数据集
import tensorflow as tfimport osimport tarfileimport requests #inception模型下载地址inception_pretrain_mod ...
- c语言打印空白星号矩形
用户输入一个数字N,输出一个N*N的空心矩形,N最小为3 效果如下: 思路是这样的,首先拿到这道题是没有思路的,但我们可以举几个例子,当N等于3的情况,当N=5的情况,发现第一行和最后一行是相同的,而 ...
- c语言实践 给三个数输出最大的那个数
我是怎么想的,我前面学过两个数比大小,比如有三个数,a b c,先比较a和b的大小,然后用那个较大的和c比较就得出最大的那个了.这个求三个数比大小的问题最后变化成 了两个数比大小了. int main ...