图像处理
JimmyOrigin
这个作者很懒,什么都没留下…
展开
-
OpenCV-6之图像的几何变换
1、仿射变换1.1 仿射变换可以理解为线性变换:放大、缩小、移动、旋转等。1.2 矩阵的线性变换:只要乘上另一个矩阵就可以变换过去。注:有些变换并不是一步到位,因此需要找到变换矩阵。1.3 变换矩阵说明1.4 代码import cv2src = cv2.imread('img/1.jpg')rows, cols, channel = src.shape# 最后一个[0, 0, 1]被省略# M = np.float32([[1, 0, 20], [0, 1, 50]])原创 2021-05-17 16:25:22 · 190 阅读 · 1 评论 -
OpenCV-5之图像运算
1、add和addWeighted:用于图像融合cv2.add(加法)和cv2.subtract(减法)import cv2import numpy as npx = np.uint8([250])y = np.uint8([10])print(cv2.add(x,y)) # [[255]]print(cv2.subtract(y,x)) # [[0]]cv2.addWeightedimport cv2img1 = cv2.imread('img/1.jpg')img2 =原创 2021-05-12 13:22:24 · 150 阅读 · 1 评论 -
OpenCV-4之二值化操作
1、说明全局二值化效果不是很好,自适应二值化,尤其是高斯阈值效果更好些。只有灰度图能做二值化操作。2、全局二值化• cv2.THRESH_BINARY(黑白二值)• cv2.THRESH_BINARY_INV(黑白二值反转)• cv2.THRESH_TRUNC (得到的图像为多像素值)• cv2.THRESH_TOZERO• cv2.THRESH_TOZERO_INVimport cv2img = cv2.imread('img/1.jpg')gray = cv2.cvtColor(原创 2021-05-12 11:18:26 · 418 阅读 · 0 评论 -
OpenCV-3之draw_shape
1、cv2.lineimport cv2img = cv2.imread(r"img/1.jpg")cv2.line(img, pt1=(100, 30), pt2=(210, 180), color=(0, 0, 255), thickness=2) cv2.imshow("pic show", img)cv2.waitKey(0)2、cv2.circle:thickness=-1,内部填充import cv2img = cv2.imread(r"img/1.jpg")cv2.ci原创 2021-05-12 10:41:36 · 200 阅读 · 1 评论 -
OpenCV-2之色彩空间
1、色彩空间颜色空间:RGB\RGBA\GRAY\HSV\YUV1.1、HSV颜色空间:H:色彩,S:饱和度,V:亮度。1.2、YUV颜色空间:Y:亮度,U:色彩,V:色彩。1.3、HSV颜色空间颜色是连续的,RGB颜色是离散的。2、代码2.1、color_space.pyimport cv2src = cv2.imread(r"img/1.jpg")# dst = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)# dst = cv2.cvtColor(原创 2021-05-12 10:14:53 · 292 阅读 · 0 评论 -
OpenCV-1之读写基本操作
1、基本知识1.1 图片常见格式bmp:位图,占用空间大,保真度高(大小wxhxcxp)因此图片一般要经过压缩,压缩分为有损压缩和污损压缩。jpg:rgb三通道png:rgba四通道,带有透明通道2、读取图片import cv2img = cv2.imread(r"img/1.jpg",0) # 0灰度图,1色彩图cv2.imshow("pic show", img)cv2.waitKey(0)3、保存图片import numpy as npimport cv2img =原创 2021-05-12 09:41:19 · 131 阅读 · 0 评论 -
OpenCV-python-03之createCLAHE生成自适应均衡化图像
1、说明equalizeHist这种全局的均衡化也会存在一些问题,由于整体亮度的提升,也会使得局部图像的细节变得模糊,因为我们需要进行分块的局部均衡化操作。如creatCLAHE2、代码import cv2img = cv2.imread('8.jpg', 0)cv2.imshow("src", img)# 直方图均衡化dst1 = cv2.equalizeHist(img)cv2.imshow("dst1", dst1)# 自适应直方图均衡化clahe = cv2.createC原创 2021-05-11 16:12:32 · 6979 阅读 · 0 评论 -
OpenCV-python-2之equalizeHist
1、说明直方图均衡化:一般可以用来提升图片的亮度,频数均衡化指的是让频数的分布看起来更加均匀一些2、代码import cv2import matplotlib.pyplot as pltimg = cv2.imread('7.jpg', 0)cv2.imshow("src", img)his = cv2.calcHist([img], [0], None, [255], [0, 255])plt.plot(his, label='his', color='r')# 直方图均衡化ds原创 2021-05-11 16:00:08 · 577 阅读 · 0 评论 -
OpenCV-python-1之calcHist
一、说明统计图像像素的直方图,图像质量较好的像素分布是正太分布,如果是两头或者中间像素多,就要考虑直方图均衡化,提高图片质量。二、代码7 import cv2 8 import matplotlib.pyplot as plt 9 10 img = cv2.imread('1.jpg') 11 cv2.imshow("...", img) 12 13 img_B = cv2.calcHist([img], [0], None, [256], [0,256]) 11 cv2.i原创 2021-05-11 14:55:35 · 258 阅读 · 0 评论