6) 如何使用位运算符?
常用的位运算符有 AND、OR、XOR 和 NOT。**BITWISE AND:**位与,它只会显示输入图像的相交像素查看下面提到的代码Org_img_1=cv.imread("/content/drive/MyDrive/Colab Notebooks/Opencv/NCS/emma-shappley-S0zmYpRTZbA-unsplash.jpg")
cv2_imshow(Org_img_1)
print("")
Org_img_2=cv.imread("/content/drive/MyDrive/Colab Notebooks/Opencv/NCS/olena-sergienko-UQLGR8otAEs-unsplash(1).jpg")
cv2_imshow(Org_img_2)
print("")
#BITWISE AND
BITWISE_AND=cv.bitwise_and(Org_img_1,Org_img_2)
cv2_imshow(BITWISE_AND)
上述代码的输出:org_img_1:
org_img_2:
BITWISE_AND:
BITWISE OR:位或,它将显示图像的相交和非相交像素。查看下面提到的代码#BITWISE OR
BITWISE_OR=cv.bitwise_or(Org_img_1,Org_img_2)
cv2_imshow(BITWISE_OR)
上述代码的输出:
BITWISE XOR:按位异或,它将显示图像的非相交像素。查看下面提到的代码#BITWISE XOR
BITWISE_XOR=cv.bitwise_xor(Org_img_1,Org_img_2)
cv2_imshow(BITWISE_XOR)
上述代码的输出:
BITWISE NOT:按位取非,即,它将反转图像的色彩空间。查看下面提到的代码#BITWISE NOT
BITWISE_NOT=cv.bitwise_not(Org_img_1)
cv2_imshow(BITWISE_NOT)
上述代码的输出:
7) 如何在图像的每个像素中绘制颜色的直方图?
7.1. BGR图像:我们将尝试使用 matplotlib 为BGR所有三个通道 绘制直方图。查看下面提到的代码和输出的详细信息:cv2_imshow(Org_img_2)
BGR_Co=('b','g','r')
for i,j in enumerate(BGR_Co):
Org_img_Histo=cv.calcHist([Org_img_2],[i],None,[256],[0,256])
plt.plot(Org_img_Histo,color=j)
plt.xlim([0,256])
plt.xlabel("Bins")
plt.ylabel("# of pixels")
plt.title("Org_img Histogram")
plt.show()
上述代码的输出:BGR图像:
直方图:
7.2. 灰度图像:我们将原始图像转换为灰度图像,然后尝试绘制该图像像素的直方图。查看下面提到的代码和输出的详细信息:gray=cv.cvtColor(Org_img_2,cv.COLOR_BGR2GRAY)
cv2_imshow(gray)
Gray_Histo=cv.calcHist([gray],[0],None,[256],[0,256])
plt.figure()
plt.title("GrayScale Histogram")
plt.xlabel("Bins")
plt.ylabel("# of pixels")
plt.plot(Gray_Histo)
plt.show()
上述代码的输出:灰度图像:
直方图:
总结现在我们已经完成了OpenCV 的基础知识和高级内容,本文涵盖了 OpenCV 中的一些高级内容,这些内容主要用于计算机视觉任务。