YCrCb
似乎是寒假做任务时候遇到的比较有意思的一道题
搜了一下原题是dasctf的隐写《YUSA的小秘密》
这题给出的最直接提示就是YCBCr(不懂
遂直接去搜索YCrCb的意思
1 | YCrCb即YUV,主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽(RGB要求三个独立的视频信号同时传输)。其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。“亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。“色度”则定义了颜色的两个方面─色调与饱和度,分别用Cr和Cb来表示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异。 |
——百度百科
好像懂了又好像没懂
找一找类似的题目
得到一份ByteCTF 2020的题《Hardcore Watermark 01》的WP
1 | 图片中每个像素可以通过三个值(通道)来表示,常见的是 R(red)G(green)B(blue) 模式。而本题用到的通道是 YCrCb。通过 cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb)对 img 图片数据进行色彩空间转换,即可得到三个通道的数据。 |
大概意思应该是RGB的三个通道变成了YUV三个通道
知道原理之后就可以去使用代码了(这个菜逼仍然不去学Python
这里要使用cv2模块(不懂什么是cv2
1 | from cv2 import cv2 as cv |
最后就能得出结果了(过于掉san所以不放图片,实际上是懒得上传到GH再拿下来
1 | DASCTF{2947b683036d49e5681f83f7bc3fbb34} |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 The Blog of WoaW04!