python图像处理

numpy矩阵计算

import numpy as np

array1 = np.array(list1)
array1 = np.zeros( (d1,d2) )
array1 = np.arange(start,end)
array1 = np.linspace(start,end,num)
array1 = np.random.rand( d1,d2 )

opencv图像处理

import cv2

https://juejin.cn/post/7449012909876903951



img = cv2.imread("data//cameraman.tif")
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 
cv2.imshow("img1",image)
cv2.waitKey()
img_pow = cv2.pow(src=img, power=2)
img_log = cv2.log(img)
#滤波器
img_avg = cv2.blur(src=img, ksize=(5, 5))
img_median = cv2.medianBlur(src=img, ksize=5)
img_gauss = cv2.GaussianBlur(img, ksize=(5, 5),sigmaX=0)
img_fang = cv2.boxFilter(src=img, ddepth=-1, ksize=(5, 5), normalize=1)  # normalize=1表示做归一化处理
#边缘检测
img_Laplacian = cv2.Laplacian(src=img, ddepth=-1, ksize=3)
img_sobel = cv2.Sobel(src=img, ddepth=cv2.CV_64F, dx=1, dy=0, ksize=3)
img_canny = cv2.Canny(image=gaussianBlur, threshold1=50, threshold2=150)

#二值化
ret, img_bin = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)    
img_desk = cv2.adaptiveThreshold(img_desk, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 7, 1)
contours, hierarchy = cv2.findContours(image=img_bin,   # 寻找轮廓的图像
         mode=cv2.RETR_TREE, # 表示轮廓的检索模式,TREE表示建立一个等级树结构的轮廓
         method=cv2.CHAIN_APPROX_NONE)# 描述轮廓的近似办法,APPROX_NONE表示存储轮廓的所有轮廓点

#目标匹配
result = cv2.matchTemplate(image, template, cv2.TM_CCOEFF_NORMED, mask)

#腐蚀和膨胀(基于二值化)
kernel = np.ones((5,5),np.uint8)
erosion = cv2.erode(img,kernel)
dilation = cv2.dilate(img,kernel)

pillow图像处理

from PIL import Image

img = Image.open("data//Lenna.jpg")
img = np.random.rand( d1,d2,3 ).astype(uint8)
img1 = Image.fromarray(img)
img_lR = img.transpose(Image.FLIP_LEFT_RIGHT) 
img.show()

matplotlib绘图

import matplotlib.pyplot as plt

plt.subplot(2, 2, 1)
plt.imshow(img)
plt.title("原图")
plt.subplot(2, 2, 2)
plt.imshow(img_lR)
plt.title("左右翻转")
plt.show()
posted @ 2025-05-12 12:54  zhuangzhongxu  阅读(21)  评论(0)    收藏  举报