图像识别基础代码汇总(python+opencv)

为了方便复制粘贴,汇总一下基础图像处理代码(如有遗漏欢迎指出,后续再添加修改)没有原理讲解,我也是个小白,方便日后写代码直接复制使用做的笔记

一、导入需要用的设置

二、读入、显示、储存、退出图片

1、读入图片

2、图像显示

3、保持图片

4、退出

5、删除窗口

二、获得图像信息

1、图像形状、像素、类型

2、图像RGB值

三、修改图像信息

1、修改像素

2、缩放 resize()

3、旋转 getRotationMatrix2D(), warpAffine()

4、翻转 flip()

5、平移 warpAffine()

三、图像阈值化 threshold()

1、二进制阈值化 cv2.THRESH_BINARY

2、反二进制阈值化 cv2.THRESH_BINARY_INV

3、截断阈值化 cv2.THRESH_TRUNC

4、阈值化为0 cv2.THRESH_TOZERO

5、反阈值化为0 cv2.THRESH_TOZERO_INV

四、图像滤波

1、均值滤波 cv2.blur(src, ksize)

2、中值滤波 cv2.medianBlur(src, ksize)

3、高斯滤波 cv2.GaussianBlur(src, ksize, sigmaX)

五、形态学处理

1、腐蚀 cv2.erode(src, kernel, iterations)

2、膨胀 cv2.dilate(src, kernel, iterations)

3、开运算 cv2.morphologyEx(src, cv2.MORPH_OPEN, kernel)

4、闭运算 cv2.morphologyEx(src, cv2.MORPH_CLOSE, kernel)

5、顶帽运算

6、黑帽运算

六、直方图均值化 equalizeHist()

七、频域滤波

1、高通滤波

2、低通滤波

八、图像梯度

1、sobel算子

2、scharr算子

3、laplacian算子

九、边缘检测 canny

十、图像金字塔

1、向下采样

2、向上采样

import numpy as np
import matplotlib.pyplot as plt
import cv2
img = cv2.imread("图像路径")
  • 读取原图:cv.IMREAD_UNCHANGED
  • 读取原图的灰度图:cv.IMREAD_GRAYSCALE
  • 读取原图的彩图:cv.IMREAD_COLOR
cv2.imshow("指定显示图片名称",读取的图片对象)
cv2.imwrite(‘保存路径',读取的图片对象)
cv2.waitKey(delay)
  • delay > 0 – 等待 delay 毫秒
  • delay < 0 – 等待键盘单击
  • delay = 0 – 无限等待
  • delay = null – 等待键盘单击
cv2.destroyAllWindows()
print(g.shape)
print(i.shape)

print(g.size)
print(i.size)

print(g.dtype)
print(i.dtype)
px = image[&#x6C34;&#x5E73;&#x65B9;&#x5411;&#x50CF;&#x7D20;, &#x7AD6;&#x76F4;&#x65B9;&#x5411;&#x50CF;&#x7D20;]
print("R:", image[&#x6C34;&#x5E73;&#x50CF;&#x7D20;, &#x7AD6;&#x76F4;&#x50CF;&#x7D20; -1])
print("G:", image[&#x6C34;&#x5E73;&#x50CF;&#x7D20;, &#x7AD6;&#x76F4;&#x50CF;&#x7D20;, 1])
print("B:", image[&#x6C34;&#x5E73;&#x50CF;&#x7D20;, &#x7AD6;&#x76F4;&#x50CF;&#x7D20;, 0])

R通道,G通道,B通道、红绿蓝三种不同的颜色通道

image[&#x50CF;&#x7D20;&#x6A2A;&#x5750;&#x6807;, &#x50CF;&#x7D20;&#x7EB5;&#x5750;&#x6807;] = [255, 255, 255]
result = cv2.resize(src, (160,160))
result = cv2.resize(src, (int(cols * 0.6), int(rows * 1.2)))
result = cv2.resize(src, None, fx=0.5, fy=0.5)

src 表示原始图像;

dsize 表示缩放大小;

fx和fy 也可以表示缩放大小倍数,他们两个(dsize或fx/fy)设置一个即可实现图像缩放

M = cv2.getRotationMatrix2D((cols/2, rows/2), 30, 1)
#&#x53C2;&#x6570;&#x5206;&#x522B;&#x4E3A;&#xFF1A;&#x65CB;&#x8F6C;&#x4E2D;&#x5FC3;&#x3001;&#x65CB;&#x8F6C;&#x5EA6;&#x6570;&#x3001;scale&#x7F29;&#x653E;&#x6BD4;&#x4F8B;

rotated = cv2.warpAffine(src, M, (cols, rows))
#&#x53C2;&#x6570;&#x5206;&#x522B;&#x4E3A;&#xFF1A;&#x539F;&#x59CB;&#x56FE;&#x50CF;&#x3001;&#x65CB;&#x8F6C;&#x53C2;&#x6570; &#x548C; &#x539F;&#x59CB;&#x56FE;&#x50CF;&#x5BBD;&#x9AD8;
dst = cv2.flip(src, flipCode)

src 表示原始图像

flipCode 表示翻转方向

M = np.float32([[1, 0, x], [0, 1, y]])
shifted = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))

三、图像阈值化 threshold()

ret,thresh1=cv2.threshold(GrayImage,127,255,cv2.THRESH_BINARY)

像素灰度值>thresh,设为最大灰度值

像素灰度值

Original: https://blog.csdn.net/qq_51377150/article/details/125961414
Author: 智慧小鲤鱼
Title: 图像识别基础代码汇总(python+opencv)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/731916/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球