当前位置:网站首页>OpenCV中LineTypes各枚举值(LINE_4 、LINE_8 、LINE_AA )的含义
OpenCV中LineTypes各枚举值(LINE_4 、LINE_8 、LINE_AA )的含义
2022-06-30 15:48:00 【昊虹图像算法】
在OpenCV中凡是与绘图有关的函数几乎都要涉及到这个LineTypes参数的设置。比如说函数line()、函数putText()、函数drawContours()、函数rectangle()等。
在OpenCV4.1.2的官方文档中,LineTypes有以下枚举值:
从中我们可以看出,有四个枚举值,分别为FILLED 、LINE_4 、LINE_8 、LINE_AA 。
其中FILLED并没有说明,说明这个枚举值应该没啥作用。
下面介绍LINE_4 、LINE_8 、LINE_AA的含义。
这几个值是用来确定线条生成算法的。我们知道一个线段实际上是由许多个像素点构成的。以绘制线段为例,当确定了线段的两个端点后,其实就可以确定线段中间那些点的坐标了。那么中间这些点的坐标是怎么计算出来的呢?那就是用相关的算法计算出来的。
在OpenCV中我们就可以用LINE_4 、LINE_8 、LINE_AA来指定具体是用哪些算法来计算出中间这些点的坐标。
LINE_4表示使用的算法计算出的属于线段上的像素点,相邻的两点之间只有四个方向。
LINE_8表示使用的算法计算出的属于线段上的像素点,相邻的两点之间只有八个方向。
LINE_AA表示使用的算法计算出的属于线段上的像素点,相邻的两点之间是大于八个方向的,比如十六个、三十二个之类的。具体是多少个,就得去看研究算法的源代码了,
LINE_AA在上面的解释中为“antialiased line”,意思为抗钜齿线。LINE_4和LINE_8是属于钜齿线的,为什么LINE_4和LINE_8是属于钜齿线呢?因为它们的方向很有限啊,LINE_8有八个方向,LINE_4只有四个方向。方向分辨率有限,那绘制出来的线条形状自然像钜齿了。
注意:要区分四连通域和八连通域与这里的LINE_4和LINE_8和区别。一个像素上下左右的四个像素点称为其四连通域,一个像素上、下、左、右、西北、东北、西南、东南的像素称为其八连通域。显然,如果我们要扩大像素与其相邻点形成的角度个数,那么就得扩大连通域,比如我们可以称下面这个为点P的5×5-1=24连通域,只是P点与其24连通域中的点并一定是相连的。
接下来,看一个示例代码,来体会下这几种LineTypes在效果上的区别。
# 博主微信/QQ 2487872782
# 有问题可以联系博主交流
# 有图像处理开发需求也请联系博主
# 图像处理技术交流QQ群 271891601
import cv2
import numpy as np
str1 = 'WR'
thick = 3
Scale = 6
img_LINE_4 = np.zeros((300, 300, 3), dtype='uint8')
cv2.putText(
img=img_LINE_4,
text=str1,
org=(20, 150),
fontFace=cv2.FONT_HERSHEY_SIMPLEX,
fontScale=Scale,
color=(0, 255, 0),
thickness=thick,
lineType=cv2.LINE_4)
cv2.imshow('LINE_4', img_LINE_4)
img_LINE_8 = np.zeros((300, 300, 3), dtype='uint8')
cv2.putText(
img=img_LINE_8,
text=str1,
org=(20, 150),
fontFace=cv2.FONT_HERSHEY_SIMPLEX,
fontScale=Scale,
color=(0, 255, 0),
thickness=thick,
lineType=cv2.LINE_8)
cv2.imshow('LINE_8', img_LINE_8)
img_LINE_AA = np.zeros((300, 300, 3), dtype='uint8')
cv2.putText(
img=img_LINE_AA,
text=str1,
org=(20, 150),
fontFace=cv2.FONT_HERSHEY_SIMPLEX,
fontScale=Scale,
color=(0, 255, 0),
thickness=thick,
lineType=cv2.LINE_AA)
cv2.imshow('LINE_AA', img_LINE_AA)
cv2.waitKey(0)
cv2.destroyAllWindows()
运行结果如下:
从运行结果我们可以看出,LINE_4和LINE_8区别不大,但明显能感觉到LINE_AA比LINE_4和LINE_8平滑得多,即抗锯齿性能好。
边栏推荐
- 荣盛生物冲刺科创板:拟募资12.5亿 年营收2.6亿
- Distributed machine learning: model average Ma and elastic average easgd (pyspark)
- MySQL transaction / lock / log summary
- What is XR extended reality and what are the XR cloud streaming platforms
- 云和恩墨中标天津滨海农村商业银行2022-2023年度Oracle维保项目
- Li Zexiang, a legendary Chinese professor, is making unicorns in batches
- After 15 years of working on 21 types of hardware, where is Google?
- Hologres共享集群助力淘宝订阅极致精细化运营
- [CVE-2019-0193] - Apache Solr DataImport 远程命令执行分析
- Go zero micro Service Practice Series (VIII. How to handle tens of thousands of order requests per second)
猜你喜欢

I 用c I 实现“栈”

Bc1.2 PD protocol

居家办公浅谈远程协助快速提效心得 | 社区征文

Headhunter 50, 000, I'll go to VC
![[bjdctf2020]the mystery of ip|[ciscn2019 southeast China division]web11|ssti injection](/img/c2/d6760826b81589781574aebff61f9a.png)
[bjdctf2020]the mystery of ip|[ciscn2019 southeast China division]web11|ssti injection

Arcmap操作系列:80平面转经纬度84

Niuke network: longest continuous subarray with positive product

微信表情符号写入判决书,你发的OK、炸弹都可能成为“呈堂证供”

MC Instruction Decoder

牛客网:乘积为正数的最长连续子数组
随机推荐
I implement "stack" with C I
【活动报名】探秘元宇宙,就差你了!7月2号我在深圳现场等你!
有意思的鼠标指针交互探究
The image variables in the Halcon variable window are not displayed, and it is useless to restart the software and the computer
Interesting research on mouse pointer interaction
Does flinkcdc have to be a clustered version if the monitored database is Mongo
Bc1.2 PD protocol
MySQL master-slave configuration
Bidding announcement: Taizhou Unicom Oracle all in one machine and database maintenance service project in 2022
[unity ugui] scrollrect dynamically scales the grid size and automatically locates the middle grid
大学生研究生毕业找工作,该选择哪个方向?
flink sql cdc 同步sqlserver 报错什么原因啊
2022蓝桥杯国赛B组-2022-(01背包求方案数)
MySQL transaction / lock / log summary
实时渲染和预渲染有什么区别
2022蓝桥杯国赛B组-费用报销-(线性dp|状态dp)
Build cloud native observability capability suitable for organizations
如何得到股票开户的优惠活动?在线开户安全么?
Yunhe enmo won the bid for Oracle maintenance project of Tianjin Binhai rural commercial bank in 2022-2023
更多龙蜥自研特性!生产可用的 Anolis OS 8.6 正式发布