字符过多被剪取

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>jquery限制输入字数,并提示剩余字数</title> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
function words_deal() 

var curLength=$("#TextArea1").val().length; 
if(curLength>5) 

var num=$("#TextArea1").val().substr(0,5); 
$("#TextArea1").val(num); 
alert("超过字数限制,多出的字将被截断!" ); 

else 

$("#textCount").text(5-$("#TextArea1").val().length); 


</script> 
</head> 
<body> 
剩余<span id="textCount">5</span>个字<br /> 
<textarea name="textarea" id="TextArea1" cols="45" rows="5" onkeyup="words_deal();" ></textarea> 
</body> 
</html> 
% 定义字符集 charSet = '0123456789+-×÷= '; % 字符集,包含空格 numClasses = length(charSet) + 1; % 字符类别数 + 空白符 % === 输入地址部分 - 修正版 === % 使用绝对路径确保可靠性 dataFolder = fullfile(pwd, 'math_problems'); % 当前目录下的math_problems文件夹 % 如果路径不存在则创建 if ~exist(dataFolder, 'dir') mkdir(dataFolder); error('数据集目录不存在,已创建空目录: %s\n请将数据放入此目录', dataFolder); end % 加载图像数据集 - 修正LabelSource参数 imds = imageDatastore(dataFolder, ... 'IncludeSubfolders', true, ... 'LabelSource', 'foldernames'); % 修正为'foldernames' % === 标签处理 === % 获取文件夹名称作为类别标签 labels = imds.Labels; % 现在labels是categorical类型 % 转换为字符串数组 labelStrings = string(labels); % 创建字符到索引的映射 char2idx = containers.Map(); for i = 1:length(charSet) char2idx(charSet(i)) = i; end char2idx(' ') = length(charSet) + 1; % 空白符 % 转换标签为数字序列 labelSequences = cell(numel(labels), 1); for i = 1:numel(labels) str = char(labels(i)); seq = zeros(1, length(str)); for j = 1:length(str) seq(j) = char2idx(str(j)); end labelSequences{i} = seq; end % === 数据预处理 === preprocessFcn = @(I) preprocessImage(I); function imgProcessed = preprocessImage(I) % 转换为灰度图像 if size(I, 3) == 3 I = rgb2gray(I); end % 自动裁剪图像(去除空白边缘) I = imbinarize(I); % 二值化处理 I = imclearborder(I); stats = regionprops(I, 'BoundingBox'); if ~isempty(stats) bbox = stats(1).BoundingBox; % 取第一个连通区域 I = imcrop(I, bbox); end % 调整图像大小为固定尺寸 targetSize = [64, 320]; % 目标尺寸 imgProcessed = imresize(I, targetSize); % 归一化处理 imgProcessed = im2double(imgProcessed); end % 应用预处理 preprocessedImds = transform(imds, @(x) preprocessData(x, preprocessFcn)); function dataOut = preprocessData(dataIn, preprocessFcn) dataOut = dataIn; dataOut.Image = preprocessFcn(dataIn.Image); end % === 数据集划分 === rng(42); % 设置随机种子 numFiles = numel(imds.Files); shuffledIdx = randperm(numFiles); % 80%训练,20%验证 trainIdx = shuffledIdx(1:round(0.8*numFiles)); valIdx = shuffledIdx(round(0.8*numFiles)+1:end); % 创建训练集 trainImages = subset(preprocessedImds, trainIdx); trainLabels = labelSequences(trainIdx); % 创建验证集 valImages = subset(preprocessedImds, valIdx); valLabels = labelSequences(valIdx); % === 网络构建 === % [使用之前的动态reshape方案] % ... 此处插入前面提供的动态reshape网络代码 ... % === 训练选项 === options = trainingOptions('adam', ... 'MaxEpochs', 30, ... 'MiniBatchSize', 32, ... 'InitialLearnRate', 0.001, ... 'Shuffle', 'every-epoch', ... 'ValidationData', {valImages, valLabels}, ... % 使用定义的验证集 'ValidationFrequency', 10, ... 'Verbose', true, ... 'Plots', 'training-progress'); % 开始训练 net = trainNetwork(trainImages, trainLabels, lgraph, options); % 保存模型 save(fullfile(dataFolder, 'trainedOCRNet.mat'), 'net'); 还是刚才的问题
06-18
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值