图像/音频算法
文章平均质量分 52
总归也是算法类,记录遇到的东西
江心之人
萌新一枚
展开
-
Python实现Arnold图像置乱算法
简介Arnold置乱俗称猫脸变换,因为最开始用的demo图是一张猫脸。这个算法可以让一张图片从有序变成无序,逆变换可以让他从无序变成有序(合法情况下),同时他还具有一定的周期性,一直正向变化也可以从有序->无序->有序,但由于加密密钥方式很多,置乱的周期也可能不一样,因此选择一个合适的密钥能够使得攻击者花费很多时间也无法破解,增加破解成本。基本原理类似于传统的图像变换(平移缩放等),他是一个矩阵相乘的方法[x′y′]=[1abab+1]∗[xy]mod N\begin{ga原创 2020-11-23 00:23:50 · 6892 阅读 · 13 评论 -
枚举某个目录下的文件(循环处理文件)
void getFiles(string path, string file_format, vector<string>& files){ intptr_t hFile = 0;//intptr_t和uintptr_t是什么类型:typedef long int/ typedef unsigned long int struct _finddata_t fileinfo; string p, file_formatName; if (0 != strcmp(file原创 2020-08-20 14:17:29 · 181 阅读 · 0 评论 -
屏蔽ffmpeg输出命令(不输出多余信息)
找了好多资料。。。因为我是直接调用编译好的文件,但是会输出很多信息,严重影响效率,然后就在找关闭的方法。由于我的程序必须要同步操作,也就是说要先转码好才能后续操作,像是什么输出到文件啦,管道啦似乎都没啥用,,最后发现自带一个参数能够屏蔽(这就是我想要的hhh-loglevel quiet避免造轮子。...原创 2020-08-18 20:56:50 · 6778 阅读 · 1 评论 -
通用的矩阵编码(LSB替换)
hhh如果你找到这篇文章,相信我也不用重新介绍这个东西了,那我就可以直接上代码了。int MatCodeEmbed(int n, vector<int> x, vector<int> a) { // @ n 需要嵌入的数据长度 // @ x 需要嵌入的数据,长度为n // @ a 原先的码元,长度为2^n - 1 vector<bitset<16>> b; for (int i = 0; i < (1 << n) - 1;原创 2020-08-18 11:05:13 · 1125 阅读 · 0 评论 -
G723音频格式读入内存
音频是用ffmpeg转的,然后用c++把文件从磁盘读到内存按帧存储,每一帧有24字节(192比特)文件头和码流部分是分开的我并不确定每个文件头都一样文件头和帧定义struct WaveFileHead{ char riff_id[4]; //"RIFF" int size0; //波形块的大小 char wave_fmt[8]; //"wave" and "fmt " // 二合一 int size1; //格式块的原创 2020-08-16 12:21:29 · 241 阅读 · 1 评论 -
G723转PCM编码
ffmpeg -i xor1.wav -c:a pcm_s16le -ar 16000 2b.wav原创 2020-08-07 02:56:18 · 323 阅读 · 0 评论 -
音频转码(MP3、PCM、G723.1)
音频工具ffmpeg全家桶MP3转G723MP3转PCMffmpeg -y -i 1a.mp3 -acodec pcm_s16le -f s16le -ac 2 -ar 22050 1e.pcmtips:标记出来的是采样频率PCM转G723.1ffmpeg -i 1a.pcm -c:a g723_1 -ar 8000 -ac 1 -b:a 6.3K 556.wavtips:标记出来的是原始的文件和生成的文件。G723.1转PCMffmpeg -y -i 001.wav -acode原创 2020-08-07 01:03:41 · 1102 阅读 · 0 评论 -
灰度化图像
图像的灰度化因为三通道图像相对来说处理比较麻烦,所以往往要转换成灰度图像,虽然OPENCV也有自带的函数,不过也需要掌握几种常见的灰度化的方法。灰度化的核心本质把三通道的图片转化成单通道。开始写的时候我把三个通道都改成同一个数字然后被老师批评了哈哈哈哈。平均化灰度Mat gray1(Mat &img) { Mat re = Mat(img.rows, img.cols, CV_...原创 2020-03-11 01:40:43 · 378 阅读 · 0 评论 -
opencv读入写出图像 获取图像高宽
路径 我们需要载入一张图像,可以采用相对路径和绝对路径的方式引用,我现在的目录下有以下结构,demo.cpp是我的主文件,里面来载入图片。img下有张dog.bmp,这里分别载入这demo.bmp 和 dog.bmp两张图片。#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int ...原创 2020-02-24 15:55:29 · 3205 阅读 · 0 评论 -
OPENCV显示图像(c++和python版)
数字图像处理 OPENCV显示一张图片先介绍C++版本安装环境(略有复杂,本文不介绍,可参考其他博客的)引入头文件书写代码安装环境只需要一次,之后只要直接写代码就可以引入头文件的方式#include <opencv2/opencv.hpp>using namespace cv;显示图片需要先打开图片Mat img = imread("demo.bmp", 0)...原创 2020-02-21 17:01:07 · 3652 阅读 · 0 评论