我正在使用OpenCV和Python。你知道吗
我用OpenCV和Python分离了RGB图像的绿色、红色和蓝色部分。然后将每个矩阵细分为8x8子矩阵,以便使用它们。到目前为止,这已经完成了。你知道吗
对于它生成的每个8x8子矩阵,我需要获得每个子矩阵的平均值,并根据获得的平均值按降序排列矩阵。我被困在这里面了。我需要帮助。你知道吗
到目前为止,我得到的代码如下
import cv2
import numpy as np
img = cv2.imread("6.jpg")
b,g,r = cv2.split(img)
def sub_matrices(color_channel):
matrices = []
for i in range(int(color_channel.shape[0]/8)):
for j in range(int(color_channel.shape[1]/8)):
matrices.append(color_channel[i*8:i*8 + 8, j*8:j*8+8])
return matrices
#returns list of sub matrices
r_submatrices = sub_matrices(r)
g_submatrices = sub_matrices(g)
b_submatrices = sub_matrices(b)
print (r_submatrices)
print (g_submatrices)
print (b_submatrices)
for i in r_submatrices:
x = np.mean(i)
print(i)
我使用numpy来得到平均值,但是我不太明白如何根据平均值对这些矩阵进行排序?你知道吗
最简单的方法是计算所有平均数,将平均数和矩阵成对保存(可以使用元组),然后排序。你知道吗
现在
matrix_mean_list
应该按照平均数排序。你可以遍历它来得到矩阵。你知道吗相关问题 更多 >
编程相关推荐