img = cv.imread('D:\image\lena.jpg',cv.IMREAD COLOR)
rows,cols,ch = img. shape
b,g,r= cv.split(img)
img= cv.merge([r,g,b])
pts1 = np.float32([[50,50][200,50][50,200]])
pts2 = np.float32([[10,100],[200,50],[100,250]])
M = cv.getAffineTransform(pts1,pts2)
dst = cv.warpAffine(img,M,(cols,rows))
plt.subplot(121),plt.imshow(img),plt.title('Input')
plt.axis('off')
plt.subplot(122),plt.imshow(dst),plt.title('output') plt.show()
plt. axis( 'off')
![](https://img-blog.csdnimg.cn/direct/60ad0eb5ec1d4cad971dd041fc4573e9.jpeg)
src = cv.imread('D:\image\lena.jpg',cv.IMREAD COLOR)
gray = cv.cvtColor(src,cv.COLOR BGR2GRAY)
cv.imshow('input',gray)
h,w= gray.shape[:2]
m = np.reshape(gray,[1,wx h])
mean =m.sum()/(w*h)
print("mean:",mean)
ret,binary= cv.threshold(gray,mean,255,CV,THRESH BINARY)
cv.imshow( 'Binary',binary)
cv.waitKey(0)
cv.destroyAllWindows()
![](https://img-blog.csdnimg.cn/direct/73065b6a1cd0427bb8524abdf2a8490f.jpeg)
import numpy as np
import cv2 as cv
img = cv.imread( 'D:\image\lena. jpg',cV. IMREAD COLOR)
cv.imshow('Lean',img)
gray = cv.cvtColor(img,cv,COLOR BGR2GRAY)
sift = cv.xfeatures2d.SIFT create()
kp = sift.detect(gray,None)
ret = cvdrawKeypoints(gray,kp,img)
cv.imshow('SIFTKeyPint',ret)
cv.waitKey(0)
cv.destroyAllWindows()
kp,des =sift.compute(gray,kp)print('特征点个数:',np.shape(kp))
print('特征向量维度:'np.shape(des))
print('第一个关键点向量:\n',des[0])
![](https://img-blog.csdnimg.cn/direct/8dc3c9ab54224a05bed27088e1c6b563.jpeg)
import cv2 as cv
import numpy as np
img = cv,imread('D:\image\lena. jpg',Cv. IMREAD COLOR)
cv. imshow( 'Lean',img)
#参数为hessian 矩阵的阈值
surf = cv.xfeatures2d.SURF create(2000)
surf.setUpright(True) #设置是否要检测方向
print(surf.getUpright()) #输出设置值
#找到关键点和描述符
key query,desc query= surf.detectAndCompute( img, None)
img= cv.drawKeypoints(img,key_query, img)
print(surf.descriptorSize()) #输出描述符的个数
cv. imshow( 'SURF', img)
cv.waitKey(0)
![](https://img-blog.csdnimg.cn/direct/9fe50cf8c20e43f9b6ea8e0e7c226aab.jpeg)
import cv2 as cv
import numpy as np
img = cv.imread('D:\image\lena. jpg',CV, IMREAD COLOR)
cv.imshow('Lean',img)
Z= img.reshape((-1,3))
np.random.seed(59)
noise = np.random.random(Z.shape)< 0.99
noisy=(Z* noise).reshape((img.shape)) #为图像增加噪声
cv.imshow('Noise Lena',noisy)
cleaned=cv.fastNlMeansDenoisingColored(noisy,None,10,7,7,21)#图像降噪cv.imshow('Denoised Lena',cleaned)
cv.waitKey()
cv.destroyAllWindows()
![](https://img-blog.csdnimg.cn/direct/1484cccb74dd46369e9629fe5743a408.jpeg)