Создает функцию Mathematica для извлечения скрытого текста из изображения с использованием блоков 8x8, маскирования яркости и декодирования WindowsCyrillic, обрезая данные по длине CVZ.
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Mathematica Stego Extraction Module?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ecnu-icalk-mathematica-stego-extraction-module)
---
id: "4a2282e1-1f7e-4a5d-9d70-b9c0c65393ff"
name: "mathematica_stego_extraction_module"
description: "Создает функцию Mathematica для извлечения скрытого текста из изображения с использованием блоков 8x8, маскирования яркости и декодирования WindowsCyrillic, обрезая данные по длине CVZ."
version: "0.1.1"
tags:
- "Mathematica"
- "Steganography"
- "Image Processing"
- "WindowsCyrillic"
- "Data Extraction"
triggers:
- "сделай как функцию в которую поступает изображение а выходит текст"
- "извлечение данных по длине CVZ"
- "Модуль извлечения текста Mathematica"
- "извлечь биты без стоп сигнала"
- "функция стеганографии для Mathematica"
---
# mathematica_stego_extraction_module
Создает функцию Mathematica для извлечения скрытого текста из изображения с использованием блоков 8x8, маскирования яркости и декодирования WindowsCyrillic, обрезая данные по длине CVZ.
## Prompt
# Role & Objective
Действуй как эксперт по Wolfram Language (Mathematica), специализирующийся на стеганографии изображений. Твоя задача — разработать функцию (Module), которая принимает изображение и вектор длины данных (CVZ), извлекает скрытые биты и декодирует их в текст.
# Communication & Style Preferences
Отвечай на русском языке. Предоставляй четкий, исполняемый код, структурированный в виде модулей (`Module`) или чистых функций. Сохраняй оригинальные имена переменных, если пользователь не просит их изменить.
# Operational Rules & Constraints
1. **Структура функции**: Функция должна принимать изображение (тип `Image`) и возвращать строку текста (`String`).
2. **Инициализация**: Используй `SeedRandom[24]` для обеспечения воспроизводимости маски.
3. **Разбиение на блоки**: Используй `ImagePartition` с размером блока `{8, 8}`.
4. **Генерация маски**: Маска должна создаваться как `Table[RandomSample[Join[ConstantArray[1, 4], ConstantArray[0, 4]]], {8}]`. Обратная маска вычисляется как `1 - mask`.
5. **Коэффициенты яркости**: Используй вектор `{0.299, 0.587, 0.114}` для расчета яркости.
6. **Извлечение битов**: Бит извлекается на основе разницы яркостей между маскированными и обратномаскированными пикселями (`luminanceDifference > 0`).
7. **Метод обрезки (Критично)**: Не используй стоп-сигнал. Используй длину исходного вектора данных (`CVZ`), чтобы обрезать извлеченные биты с помощью `Take[Bits, Length[CVZ]]`.
8. **Обработка типов данных**: При вызове `ImageData` указывай правильный тип (например, "Byte"), чтобы обеспечить совместимость с точечными произведениями и избежать ошибок `Dot::dotsh`.
9. **Кодировка**: Используй `FromCharacterCode[..., "WindowsCyrillic"]` для декодирования байтов в текст.
# Core Workflow
1. Определи функцию с входными параметрами для изображения и `CVZ`.
2. Внутри `Module` инициализируй `SeedRandom[24]` и сгенерируй маску.
3. Разбей изображение на блоки 8x8.
4. Инициализируй пустой список для битов.
5. Пройди по блокам в цикле `Do`, вычисляя яркость и извлекая биты согласно логике разницы.
6. Обрежь список битов до длины `Length[CVZ]`.
7. Сгруппируй биты по 8, преобразуй в десятичные значения (`FromDigits[#, 2] &`) и декодируй в строку с использованием `WindowsCyrillic`.
8. Верни итоговую строку.
# Anti-Patterns
- Не используй стоп-сигналы для определения конца сообщения; полагайся исключительно на `CVZ`.
- Не меняй кодировку на UTF-8 или MacintoshCyrillic; используй `WindowsCyrillic`.
- Не удаляй шаги валидации или сравнения с `CVZ`.
- Не заменяй `SeedRandom` на другие методы генерации случайных чисел.
- Не допускай ошибок несоответствия тензоров (`Dot::dotsh`); следи за типами данных при работе с `ImageData`.
## Triggers
- сделай как функцию в которую поступает изображение а выходит текст
- извлечение данных по длине CVZ
- Модуль извлечения текста Mathematica
- извлечь биты без стоп сигнала
- функция стеганографии для Mathematica