MatLab Qt 混沌加密函数 C++调用(附源码工程)

标题:在Qt中调用Matlab函数的实现方法

摘要:本文介绍了如何在Qt应用程序中调用Matlab函数。通过使用Matlab引擎API和Qt的信号槽机制,我们可以方便地将Matlab的强大功能集成到Qt应用程序中。源码在文章末尾~需要自取哈~

最终效果如图所示:

Matlab:

1.通过MatLab编写加密解密函数:

注意:两个函数的传入传出参数都是一致的!mwarray img = f  (imgpath,key )

2.运行查看Matlab效果:

3.将函数打包:

>>> !mcc
 >>> mex -setup -v

识别到了 MSVC2017 !!!!

若没识别到,恭喜您!和我一样,要去查看别的教程修改注册表信息!

若没识别到,恭喜您!和我一样,要去查看别的教程修改注册表信息!

若没识别到,恭喜您!和我一样,要去查看别的教程修改注册表信息!

如果还是不行,建议重装...先装VisualStudio (我的是2022),装MSVC2017,装Qt5.14.2,配置Qt MSVC2017; 最后装Matlab;(这里卡了有三天~呜呜呜)

当然 ,重装VS放D盘还是会识别不到编译器~ 还得改~O(∩_∩)O

设置一下:

>> mex -setup C++

输入deploytool:

>> deploytool

点击后跳到另一个界面:

修改导出的文件名:

打包后会弹出对应的窗口

全部复制到工程目录下

Matlab部分,大功告成!!!

接下来开始Qt部分 :

先确认一下Qt 版本

MSVC 2017   

编译器我们也选择 MSVC 2017的 这里我的是64位( 注意:编译的matlab库也是64位!)

这里可以选择外部库进行添加,也可以自己手打~

.pro文件

matlab相关:

#!!!!!!
#修改为 对应matlab文件目录
MATLAB_PATH = D:/MATLAB/R2018a/extern

INCLUDEPATH += $$MATLAB_PATH/include
INCLUDEPATH += $$MATLAB_PATH/include/win64
LIBS += $$MATLAB_PATH/lib/win64/mingw64/libeng.lib
LIBS += $$MATLAB_PATH/lib/win64/mingw64/libmat.lib
LIBS += $$MATLAB_PATH/lib/win64/mingw64/libmx.lib
LIBS += $$MATLAB_PATH/lib/win64/mingw64/libmex.lib
LIBS += $$MATLAB_PATH/lib/win64/mingw64/mclmcr.lib
LIBS += $$MATLAB_PATH/lib/win64/mingw64/mclmcrrt.lib

注意!!!!:

.pro中添加 .ctf (不然运行时会内存报错 一片红!!!!!)

.pro中添加 .ctf (不然运行时会内存报错 一片红!!!!!)

.pro中添加 .ctf (不然运行时会内存报错 一片红!!!!!)

DISTFILES += \
    SDK/v2/generic_interface/encryDecryptImage.ctf

编写代码::初始化后 传入参数 即可使用!!!

 //初始化加密解密函数
    if (!encryDecryptImageInitialize()) {
        qDebug() << "encryDecryptImageInitialize failed!" << endl;
    }

传参说明:最好使用构造的方式进行,直接赋值操作会崩溃(我这里是的~┭┮﹏┭┮)

   mwArray imagepath(file_str);  // 替换为实际的图像路径
    mwArray key_num(dekey);       // 替换为实际的密钥序列路径

    decryptImage(1, decrypted_image, imagepath, key_num);

图片支持拖拽导入 记得路径不要有中文!!!

Label 显示有点小问题,无伤大雅哈!

工程放这里咯:

git@gitee.com:tan-xiaoxi/en-decrypt-img-project.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值