# openCVPracticalExercise学习笔记04

128 篇文章 0 订阅

## 31使用OpenCV将一个三角形仿射变换到另一个三角形

 1 2 3 4 5 6 7 8 9 10 11  # Given a pair of triangles, find the affine transform. warpMat = cv2.getAffineTransform( np.float32(tri1Cropped), np.float32(tri2Cropped) ) # Apply the Affine Transform just found to the src image img2Cropped = cv2.warpAffine( img1Cropped, warpMat, (r2[2], r2[3]), None, flags=cv2.INTER_LINEAR, borderMode=cv2.BORDER_REFLECT_101 ) # Get mask by filling triangle mask = np.zeros((r2[3], r2[2], 3), dtype = np.float32) cv2.fillConvexPoly(mask, np.int32(tri2Cropped), (1.0, 1.0, 1.0), 16, 0); img2Cropped = img2Cropped * mask 

## 32使用OpenCV进行非真实感渲染

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  # Edge preserving filter with two different flags. imout = cv2.edgePreservingFilter(im, flags=cv2.RECURS_FILTER); cv2.imwrite("edge-preserving-recursive-filter.jpg", imout); imout = cv2.edgePreservingFilter(im, flags=cv2.NORMCONV_FILTER); cv2.imwrite("edge-preserving-normalized-convolution-filter.jpg", imout); imout = cv2.detailEnhance(im); cv2.imwrite("detail-enhance.jpg", imout); imout_gray, imout = cv2.pencilSketch(im, sigma_s=60, sigma_r=0.07, shade_factor=0.05); cv2.imwrite("pencil-sketch.jpg", imout_gray); cv2.imwrite("pencil-sketch-color.jpg", imout); cv2.stylization(im,imout); cv2.imwrite("stylization.jpg", imout); 

## 35使用Tesseract和OpenCV实现文本识别

https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00
tesseract要想有好的识别效果，就必须有大量的训练样本。但是tesseract对英文支持还是不错的。

 1 2 3 4 5  imPath = 'image/computer-vision.jpg' config = ('-l eng --oem 1 --psm 3') im = cv2.imread(imPath, cv2.IMREAD_COLOR) text = pytesseract.image_to_string(im, config=config) print(text) 

## 36使用OpenCV在视频中实现简单背景估计

 1 2 3 4 5 6 7 8  medianFrame = np.median(frames, axis=0).astype(dtype=np.uint8) grayMedianFrame = cv2.cvtColor(medianFrame, cv2.COLOR_BGR2GRAY) while(ret): ret, frame = cap.read() frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) dframe = cv2.absdiff(frame, grayMedianFrame) th, dframe = cv2.threshold(dframe, 30, 255, cv2.THRESH_BINARY) 

## 39在OpenCV中使用ArUco标记的增强现实

aruco标记是放置在被成像的对象或场景上的基准标记。它是一个具有黑色背景和边界的二元正方形，其内部生成的白色图案唯一地标识了它。黑边界有助于他们更容易被发现。它们可以产生多种大小。根据对象大小和场景选择大小，以便成功检测。如果很小的标记没有被检测到，仅仅增加它们的大小就可以使它们的检测更容易。

## 40计算机视觉工具对比

2 适用于计算机视觉的MATLAB

 1 2  2.1 为什么要使用MATLAB进行计算机视觉：优点 2.2 为什么不应该将MATLAB用于计算机视觉：缺点 

3 适用于计算机视觉的OpenCV（C++）

 1 2  3.1 为什么要使用OpenCV（C++）进行计算机视觉：优点 3.2 为什么不应该将OpenCV（C++）用于计算机视觉：缺点 

4 适用于计算机视觉的OpenCV（Python）

 1 2  4.1 为什么要使用OpenCV（Python）进行计算机视觉：优点 4.2 为什么不应该将OpenCV（Python）用于计算机视觉：缺点 

• 0
点赞
• 0
评论
• 0
收藏
• 一键三连
• 扫一扫，分享海报