在使用python+opencv进行二值图像进行处理过程,需要对图像进行行间分割,使用彩色线条视觉感受比较好,
运用for循环以及if函数,并结合opencv自带的cv2.line()函数进行画线,发现结果只有黑线或者白线,如何在二值图像画彩色线条
import cv2
if __name__=='__main__':
#图像读取
image=cv2.imread('./maizetext.png',2)
#图像为675×900的图像,列方向每隔15像素画一条横向的绿线
for i in range(image.shape[0]):
for j in range(image.shape[1]):
if (i%15)==0:
cv2.line(image,(0,i),(899,i),(0, 255, 0),2)
print('out',image)
cv2.imshow('out',image)
cv2.waitKey(0)
cv2.destroyAllWindows()
虽然这对处理影响不大,但视觉上不太直观,因为图像回头要拿来汇报,所以比较急
最好是彩色的线条比如下图红色线条这种:
二值图像没法画彩色线条,只有保存成rgb图像才能画。
读入的图片如果是rgb图像的话,修改一下cv2.imread()函数的flag标志位就行,改成-1,1或者4都可以。
enum cv::ImreadModes {
cv::IMREAD_UNCHANGED = -1,
cv::IMREAD_GRAYSCALE = 0,
cv::IMREAD_COLOR = 1,
cv::IMREAD_ANYDEPTH = 2,
cv::IMREAD_ANYCOLOR = 4,
cv::IMREAD_LOAD_GDAL = 8,
cv::IMREAD_REDUCED_GRAYSCALE_2 = 16,
cv::IMREAD_REDUCED_COLOR_2 = 17,
cv::IMREAD_REDUCED_GRAYSCALE_4 = 32,
cv::IMREAD_REDUCED_COLOR_4 = 33,
cv::IMREAD_REDUCED_GRAYSCALE_8 = 64,
cv::IMREAD_REDUCED_COLOR_8 = 65,
cv::IMREAD_IGNORE_ORIENTATION = 128
}