再战图形,一图一世界

本文探讨了Python在图像处理领域的应用,包括cv2库的使用,颜色空间的理解(如RGB、HSV、YUV),颜色统计,Pillow模块的下载,以及将颜色点转换为常见颜色名称的操作。还提到了QtWidgets组件和Pandas数据处理的技巧,如Qt的QTableWidgetItem和处理list类型的列。文章进一步讨论了图像的高级操作,如两层饼图的实现和毛玻璃效果,以及DirectX和DirectShow在多媒体处理中的作用。最后,介绍了使用DirectShow播放MP4视频的基本步骤。
摘要由CSDN通过智能技术生成

不得不感叹,十年以后有了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).
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值