郑州建设网站有哪些,磁力蜘蛛种子搜索,公司变更登记申请书,外贸网站推广seo【图像处理#xff1a;OpenCV-Python基础操作】 1 读取图像2 显示图像3 保存图像4 图像二值化、灰度图、彩色图#xff0c;像素替换5 通道处理#xff08;通道拆分、合并#xff09;6 调整尺寸大小7 提取感兴趣区域、掩膜8 乘法、逻辑运算9 HSV色彩空间#xff0c;获取特定… 【图像处理OpenCV-Python基础操作】 1 读取图像2 显示图像3 保存图像4 图像二值化、灰度图、彩色图像素替换5 通道处理通道拆分、合并6 调整尺寸大小7 提取感兴趣区域、掩膜8 乘法、逻辑运算9 HSV色彩空间获取特定色彩区域10 滤波处理均值高斯、中值、形态学 参考李立宗. 计算机视觉40例从入门到深度学习(OpenCV-Python)[M]电子工业出版社2022. pip install opencv-python opencv-contrib-python(贡献库有诸多算法有必要安装)1 读取图像
import cv2
lenacv2.imread(lenacolor.png)
print(lena)2 显示图像
import cv2
lenacv2.imread(lena.bmp)
cv2.imshow(demo1, lena )
cv2.imshow(demo2, lena )
cv2.waitKey()
cv2.destroyAllWindows()
3 保存图像
import cv2
lenacv2.imread(lena.bmp)
rcv2.imwrite(result.bmp,lena)4 图像二值化、灰度图、彩色图像素替换
import cv2
import numpy as np
imgnp.zeros((8,8),dtypenp.uint8)
print(img\n,img)
cv2.imshow(one,img)
print(读取像素点img[0,3],img[0,3])
img[0,3]255
print(修改后img\n,img)
print(读取修改后像素点img[0,3],img[0,3])
cv2.imshow(two,img)
cv2.waitKey()
cv2.destroyAllWindows()import cv2
imgcv2.imread(lena.bmp,0)
cv2.imshow(before,img)
print(img[50,90]原始值:,img[50,90])
img[10:100,80:100]255
print(img[50,90]修改值:,img[50,90])
cv2.imshow(after,img)
cv2.waitKey()
cv2.destroyAllWindows() import cv2
imgcv2.imread(lenacolor.png)
cv2.imshow(before,img)
print(访问img[0,0],img[0,0])
print(访问img[0,0,0],img[0,0,0])
print(访问img[0,0,1],img[0,0,1])
print(访问img[0,0,2],img[0,0,2])
print(访问img[50,0],img[50,0])
print(访问img[100,0],img[100,0])
#区域1白色
img[0:50,0:100,0:3]255
#区域2灰色
img[50:100,0:100,0:3]128
#区域3 黑色
img[100:150,0:100,0:3]0
#区域4 红色
img[150:200,0:100](0,0,255)
#显示
cv2.imshow(after,img)
print(修改后img[0,0],img[0,0])
print(修改后img[0,0,0],img[0,0,0])
print(修改后img[0,0,1],img[0,0,1])
print(修改后img[0,0,2],img[0,0,2])
print(修改后img[50,0],img[50,0])
print(修改后img[100,0],img[100,0])
cv2.waitKey()
cv2.destroyAllWindows()5 通道处理通道拆分、合并
import cv2
lenacv2.imread(lenacolor.png)
cv2.imshow(lena,lena)
blena[:,:,0]
glena[:,:,1]
rlena[:,:,2]
cv2.imshow(b,b)
cv2.imshow(g,g)
cv2.imshow(r,r)
lena[:,:,0]0
cv2.imshow(lenab0,lena)
lena[:,:,1]0
cv2.imshow(lenab0g0,lena)
cv2.waitKey()
cv2.destroyAllWindows() import cv2
lenacv2.imread(lenacolor.png)
b,g,rcv2.split(lena)
bgrcv2.merge([b,g,r])
rgbcv2.merge([r,g,b])
cv2.imshow(lena,lena)
cv2.imshow(bgr,bgr)
cv2.imshow(rgb,rgb)
cv2.waitKey()
cv2.destroyAllWindows()6 调整尺寸大小
import cv2
imgcv2.imread(test.bmp)
rows,colsimg.shape[:2]
size(int(cols*0.9),int(rows*0.5))
rstcv2.resize(img,size)
print(img.shape,img.shape)
print(rst.shape,rst.shape)img.shape (512, 51, 3) rst.shape (256, 45, 3)
7 提取感兴趣区域、掩膜
import cv2
acv2.imread(lenacolor.png,cv2.IMREAD_UNCHANGED)
facea[220:400,250:350]
cv2.imshow(original,a)
cv2.imshow(face,face)
cv2.waitKey()
cv2.destroyAllWindows()import cv2
import numpy as np
m1np.zeros([600,600],np.uint8)
m1[200:400,200:400]255
m2np.zeros([600,600],np.uint8)
m2[200:400,200:400]1
cv2.imshow(m1,m1)
cv2.imshow(m2,m2)
cv2.imshow(m2*255,m2*255)
cv2.waitKey()
cv2.destroyAllWindows()8 乘法、逻辑运算
import cv2
import numpy as np
ocv2.imread(lenacolor.png,1)
h,w,co.shape
mnp.zeros((h,w,c),dtypenp.uint8)
m[100:400,200:400]1
m[100:500,100:200]1
resultm*o
cv2.imshow(o,o)
cv2.imshow(mask,m*255) #m*255确保能显示
cv2.imshow(result,result)
cv2.waitKey()
cv2.destroyAllWindows()import cv2
import numpy as np
ocv2.imread(lenacolor.png,1)
h,w,co.shape
mnp.zeros((h,w,c),dtypenp.uint8)
m[100:400,200:400]255
m[100:500,100:200]255
resultcv2.bitwise_and(o,m)
cv2.imshow(original,o)
cv2.imshow(mask,m)
cv2.imshow(result,result)
cv2.waitKey()
cv2.destroyAllWindows() import cv2
import numpy as np
ocv2.imread(lenacolor.png,1)
tcv2.imread(text.png,1)
h,w,co.shape
mnp.zeros((h,w),dtypenp.uint8)
m[100:400,200:400]255
m[100:500,100:200]255
rcv2.add(o,t,maskm)
cv2.imshow(orignal,o)
cv2.imshow(text,t)
cv2.imshow(mask,m)
cv2.imshow(result,r)
cv2.waitKey()
cv2.destroyAllWindows()9 HSV色彩空间获取特定色彩区域
import cv2
import numpy as np
imgcv2.imread(x.jpg)
hsv cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
min_HSV np.array([0 ,10,80], dtype uint8)
max_HSV np.array([33, 255, 255], dtype uint8)
mask cv2.inRange(hsv, min_HSV, max_HSV)
reusult cv2.bitwise_and(img,img, mask mask)
cv2.imshow(img,img)
cv2.imshow(reusult,reusult)
cv2.waitKey()
cv2.destroyAllWindows()10 滤波处理均值高斯、中值、形态学
也可以叫平滑处理 1均值滤波
import cv2
ocv2.imread(lenaNoise.png)
r3cv2.blur(o,(3,3))
r11cv2.blur(o,(11,11))
cv2.imshow(original,o)
cv2.imshow(result3,r3)
cv2.imshow(result11,r11)
cv2.waitKey()
cv2.destroyAllWindows()2高斯滤波
import cv2
ocv2.imread(lenaNoise.png)
r1cv2.GaussianBlur(o,(5,5),0,0)
r2cv2.GaussianBlur(o,(5,5),0.1,0.1)
r3cv2.GaussianBlur(o,(5,5),1,1)
cv2.imshow(original,o)
cv2.imshow(result1,r1)
cv2.imshow(result2,r2)
cv2.imshow(result3,r3)
cv2.waitKey()
cv2.destroyAllWindows()3中值滤波
import cv2
ocv2.imread(lenaNoise.png)
rcv2.medianBlur(o,3)
cv2.imshow(original,o)
cv2.imshow(result,r)
cv2.waitKey()
cv2.destroyAllWindows()4膨胀、腐蚀
import cv2
import numpy as np
ocv2.imread(rerode.bmp,cv2.IMREAD_UNCHANGED)
kernel1 np.ones((3,3),np.uint8)
erosion1 cv2.erode(o,kernel1)
kernel2 np.ones((7,7),np.uint8)
erosion2 cv2.erode(o,kernel2,iterations 5)
cv2.imshow(orriginal,o)
cv2.imshow(erosion1,erosion1)
cv2.imshow(erosion2,erosion2)
cv2.waitKey()
cv2.destroyAllWindows()import cv2
import numpy as np
ocv2.imread(dilation.bmp,cv2.IMREAD_UNCHANGED)
kernel np.ones((5,5),np.uint8)
dilation1 cv2.dilate(o,kernel)
dilation2 cv2.dilate(o,kernel,iterations 9)
cv2.imshow(original,o)
cv2.imshow(dilation1,dilation1)
cv2.imshow(dilation2,dilation2)
cv2.waitKey()
cv2.destroyAllWindows()