Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0622
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在:
- 个人网站: `https://oeasy.org`
- 蓝桥云课: `https://www.lanqiao.cn/courses/3584`
- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
- Gitee: `https://gitee.com/overmind1980/oeasypython`
---
- 上次安装了opencv
- 图片的本质是什么呢?
- 为什么输出的时候会输出一个三维数组呢?🤔
import cv2
image = cv2.imread("/home/shiyanlou/kun1.png")
print(image)

import cv2
image = cv2.imread("/home/shiyanlou/kun1.png")
print(type(image))


import cv2
image = cv2.imread("/home/shiyanlou/kun1.png")
print("ndim:",image.ndim)
print("shape:",image.shape)
print("size:",image.size)
print("dtype:",image.dtype)
print("nbytes:",image.nbytes)

import numpy as np
import cv2
canvas = np.zeros((300,300,3), np.uint8)
cv2.imshow("canvas",canvas)
cv2.waitKey()
cv2.destroyAllWindows()

import numpy as np
import cv2
canvas = np.zeros((300,300,3), np.uint8)
print(canvas)
cv2.imshow("canvas",canvas)
cv2.waitKey()
cv2.destroyAllWindows()

import numpy as np
import cv2
canvas = np.zeros((300,300,3), np.uint8)
cv2.putText(canvas,"oeasy",(30,80),cv2.FONT_HERSHEY_TRIPLEX,2,(0,0,255),5)
cv2.imshow("Text",canvas)
cv2.waitKey()
cv2.destroyAllWindows()
- 百度搜索
- opencv putText( site:opencv.org


void cv::putText(
cv::Mat& img, // 待绘制的图像
const string& text, // 待绘制的文字
cv::Point origin, // 文本框的左下角
int fontFace, // 字体 (如cv::FONT_HERSHEY_PLAIN)
double fontScale, // 尺寸因子,值越大文字越大
cv::Scalar color, // 线条的颜色(RGB)
int thickness = 1, // 线条宽度
int lineType = 8, // 线型(4邻域或8邻域,默认8邻域)
bool bottomLeftOrigin = false // true='origin at lower left'
);
cv2.putText(canvas,"oeasy",(30,80),cv2.FONT_HERSHEY_TRIPLEX,2,(0,0,255),5)
| 名称 |
数值 |
作用 |
| Point origin |
(30,80) |
原点位置 |
| fontFace |
cv2.FONT_HERSHEY_TRIPLEX |
字体 |
| fontScale |
2 |
尺寸因子 |
| color |
(0,0,255) |
颜色 红色 |
| thickness |
8 |
线条宽度 |

import numpy as np
import cv2
from random import randint
image = np.zeros((480,640,3), np.uint8)
text = "oeasy learns to opencv"
cv2.putText(image, text, (20, 20), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 255, 255),1)
cv2.putText(image, text, (20, 50), cv2.FONT_HERSHEY_COMPLEX_SMALL, 1, (0, 255,255),1)
cv2.putText(image, text, (20, 80), cv2.FONT_HERSHEY_DUPLEX, 1, (0, 255, 255),1)
cv2.putText(image, text, (20, 110), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)
cv2.putText(image, text, (20, 140), cv2.FONT_HERSHEY_SCRIPT_COMPLEX, 1, (0, 255,255),1)
cv2.putText(image, text, (20, 170), cv2.FONT_HERSHEY_SCRIPT_SIMPLEX, 1, (0, 255,255),1)
cv2.putText(image, text, (20, 200), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255),1)
cv2.putText(image, text, (20, 230), cv2.FONT_HERSHEY_TRIPLEX, 1, (0, 255, 255),1)
cv2.imshow("PolyLines",image)
cv2.waitKey()
cv2.destroyAllWindows()

| 字体名称 |
字体说明 |
| FONT_HERSHEY_SIMPLEX |
正常大小无衬线字体 |
| FONT_HERSHEY_PLAIN |
小号无衬线字体 |
| FONT_HERSHEY_DUPLEX |
正常大小无衬线字体,比FONT_HERSHEY_SIMPLEX更复杂 |
| FONT_HERSHEY_COMPLEX |
正常大小有衬线字体 |
| FONT_HERSHEY_TRIPLEX |
正常大小有衬线字体,比FONT_HERSHEY_COMPLEX更复杂 |
| FONT_HERSHEY_COMPLEX_SMALL |
FONT_HERSHEY_COMPLEX的小译本 |
| FONT_HERSHEY_SCRIPT_SIMPLEX |
手写风格字体 |
| FONT_HERSHEY_SCRIPT_COMPLEX |
手写风格字体,比FONT_HERSHEY_SCRIPT_SIMPLEX更复杂 |
import numpy as np
import cv2
canvas = np.zeros((300,300,3), np.uint8)
cv2.putText(canvas,"oeasy",(30,80),cv2.FONT_HERSHEY_DUPLEX,1,(0,0,255),1,8,True)
cv2.imshow("updown",canvas)
cv2.waitKey()
cv2.destroyAllWindows()


import cv2
image = cv2.imread("/home/shiyanlou/kun1.png")
cv2.putText(image,"kun",(30,80),cv2.FONT_HERSHEY_DUPLEX,1,(0,0,255),1)
cv2.imshow("kun",image)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imwrite('/home/shiyanlou/kunkun.png',image)

- 可以在空白黑底图像上写字
- 可以试试使用滚动条吗?🤔
- 我们下次再说 👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。