不得不感叹,十年以后有了python,世界改变了许多。客观的说是python中的库,python语言本身并不十分惊艳,但禁不住那么多人来用它。你一言,我一语,聚沙成塔。高手不会说的门槛:
1.cv2.imread()读取图片后已多维数组的形式保存图片信息,前两维表示图片的像素坐标,最后一维表示图片的通道索引,具体图像的通道数由图片的格式来决定。所谓通道就是用来表示颜色空间的维数。RGB,就是三维。
2.使用np.set_printoptions(threshold=sys.maxsize),而不是网上人云亦云的np.set_printoptions(threshold=np.nan)
3.相对于RGB空间,HSV空间能够非常直观的表达色彩的明暗,色调,以及鲜艳程度,方便进行颜色之间的对比,也方便感情的传达。但是缺点是不能直接把颜色值传达给显示器,在转换过程中消耗系统资源。
4.彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。HSV是一种将RGB色彩空间中的点在倒圆锥体中的表示方法。HSV即色相(Hue)、饱和度(Saturation)、明度(Value),又称HSB(B即Brightness)。HSV是一种比较直观的颜色模型,所以在许多图像编辑工具中应用比较广泛。
5.统计颜色种类及出现的次数(多种神操作):
img = cv2.imread('j:/a.jpg')
img1d=np.reshape(img,(300*534,3))
imgtuple=tuple(tuple(row) for row in img1d)#神
c=collections.Counter(imgtuple)
dictc=dict(c)
#终于找到正确的方法了
data_df = pd.DataFrame(list(dictc.items()))#神
print(data_df)
6.下载模块Pillow,但是代码写from PIL import Image
7.干点有趣的。把图中的颜色点转换成常用颜色的名称
dist=[np.argmin([np.sqrt(np.sum(np.asarray((pd.Series(y)).astype(int)-(pd.Series(x)).astype(int))**2)) for x in cc['rgb'] ]) for y in data_df['rgb']]
print("dist",dist)
8.最简单的。QtWidgets.QMainWindow
#self.show()显示不了,一闪而过。一定要实例化后,调用show()
#坑一
app = QtWidgets.QApplication(sys.argv)
se=showWindow()
#坑二:self.show()显示不了,一闪而过。一定要实例化后,调用show()
se.show()
sys.exit(app.exec_())
9.QTableWidgetItem让人的喜欢,但也有坑。
self.tb.setItem(3,0,QTableWidgetItem("Jan"))
self.tb.item(3,0).