我是OpenCV的新手,现在正在做一个与图像处理相关的高级项目。我有一个问题:我能用OpenCV的一些函数制作水平或垂直的直方图吗?
谢谢,Truong
我是OpenCV的新手,现在正在做一个与图像处理相关的高级项目。我有一个问题:我能用OpenCV的一些函数制作水平或垂直的直方图吗?
谢谢,Truong
import cv
def verticalProjection(img):
"Return a list containing the sum of the pixels in each column"
(w,h) = cv.GetSize(img)
sumCols = []
for j in range(w):
col = cv.GetSubRect(img, (j,0,1,h))
sumCols.append(cv.Sum(col)[0])
return sumCols
更新carnieri的答案(一些cv函数今天不起作用)
import numpy as np
import cv2
def verticalProjection(img):
"Return a list containing the sum of the pixels in each column"
(h, w) = img.shape[:2]
sumCols = []
for j in range(w):
col = img[0:h, j:j+1] # y1:y2, x1:x2
sumCols.append(np.sum(col))
return sumCols
致敬。
使用OpenCV 3和Python的cv2.reduce
的示例:
import numpy as np
import cv2
img = cv2.imread("test_1.png")
x_sum = cv2.reduce(img, 0, cv2.REDUCE_SUM, dtype=cv2.CV_32S)
y_sum = cv2.reduce(img, 1, cv2.REDUCE_SUM, dtype=cv2.CV_32S)