我试图了解如何使用separability属性实现快速傅立叶变换。
这本书的图片:冈萨雷斯,R。C.和R. E. Woods。 “数字图像处理,第四版全球版。”
据此,据我所知,我们必须计算如下这样的复杂正弦波值的矩阵:
CryptoPP::StringSource
因此,我们的矩阵是一维数组,具有图像的大小。 然后,我们必须拍摄一张图像,并将其与逐行数组F相乘,然后拍摄处理后的图像,并将其与逐列数组F相乘。
我不明白的是如何正确执行这种逐行和逐列的乘法。
假设我们采用F并将其列按块分开。我是这样的:
std::optional<std::string> Cryptography::decrypt_data(const std::string& encypted_data)
{
std::optional<std::string> plain_data { std::nullopt };
try
{
CryptoPP::CBC_Mode<CryptoPP::AES>::Decryption decryption(this->aes_key.data(), this->aes_key.size(), this->aes_iv.data(), this->aes_iv.size())
StringSource string_source(encypted_data, true, new StreamTransformationFilter(decryption, new StringSink(plain_data)));
}
catch(const CryptoPP::Exception& e)
{
#ifdef _DEBUG
spdlog::error("CryptoPP Exception in Cryptography::decrypt_data : {}", ex.what());
#endif
PLOG_ERROR << ex.what();
}
catch(const std::exception& ex)
{
#ifdef _DEBUG
spdlog::error("Exception in Cryptography::decrypt_data : {}", ex.what());
#endif
PLOG_ERROR << ex.what();
}
return plain_data;
}
但这是错误的,该行为空。
为了将其与像素值相乘,我们是否应该像这样实际切割一维数组?还是有另一种方法来计算行与列的乘法?如何在Java中实现它?