【发布时间】:2021-06-26 17:48:39
【问题描述】:
我有点业余编码,所以我会尽我所能解释我的问题:
我正在尝试创建一个莫尔斯电码光解码器,输入是闪烁的莫尔斯电码序列的视频,输出是解码后的短语。
到目前为止,我得到了一个变量,当灯亮时为真,当灯熄灭时为假。
这是我目前所拥有的视频:
Demo Video
如果你想编辑它,这是我的程序:
Morse Decoder
这是我用于测试的视频:
Test
我正在寻找的是以某种方式将左上角的波动变量转换为如下所示:
[{"state":"on", "lengthtime":"300ms"}, {"state":"off", "lengthtime":"200ms"}, {"state":"on", "lengthtime":"400ms"}, ...]
此列表按顺序列出每个脉冲/暂停,以及每个脉冲/暂停的长度。这将很容易解析并转换为莫尔斯。
我检查它是打开还是关闭的代码:
function drawFrame(video) {
let onoff = 0;
context.drawImage(video, 0, 0);
var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
grayscaleVid(imageData.data);
context.putImageData(imageData, 0, 0);
var pixel = context.getImageData(112, 64, 1, 1);
var data = pixel.data;
const brightness = (data[0] + data[1] + data[2]) / 3;
if (brightness > 130) {
onoff = true;
} else {
onoff = false;
}
document.getElementById('test').innerHTML = onoff;
setTimeout(function() {
drawFrame(video);
}, 10);
}
【问题讨论】:
-
代码被删除...请在问题中添加代码。
-
@NinaScholz 抱歉,已修复。
-
你能显示在顶部显示值 true/false 的代码吗?
-
@iagowp 它在文件中,但这里是那部分: if (brightness > 130) { onoff = true; } 其他 { onoff = false; } document.getElementById('test').innerHTML = onoff;
-
我不会从其他地方下载文件。在提出问题时,您应该尝试将问题的相关代码放在问题本身上,以便将来保持有用。就像现在一样,您可以从云端硬盘中删除该代码,而这个问题对其他人来说毫无用处
标签: javascript html variables html5-canvas morse-code