// var _elementIdToDataMap={};
var commonDebugFlag = true;
//视图数据改变通用处理(更新数据对象里的值)
function commonOnchangeFun(elementId) {
commonDebug(elementId, "commonOnchangeFun elementId");
var value = getElementVal("#" + elementId);
commonDebug(value, "commonOnchangeFun value");
var data = dataViewCommonJs.elementIdToDataMap[elementId].data;
commonDebug(data, "commonOnchangeFun data");
var field = dataViewCommonJs.elementIdToDataMap[elementId].field;
commonDebug(field, "commonOnchangeFun field");
//更新数据对象里的值
data[field]=value;
}
// var initDataPage = {
// defaultFormValue:data,
// formValue:{},
// modelId:"app",
// formFieldDes:{}
// };
// formDataInit(initDataPage);
function commonFormDataInit(initData) {
// var defaultFormValue=deepClone(initData.defaultFormValue);
var formValue=deepClone(initData.defaultFormValue);
initData.formValue=formValue;
observe(initData.formValue,initData,initData.modelId);
//
//初始值进行一次赋值
// objToObjByField(defaultFormValue,initData.formValue);
commonDebug(dataViewCommonJs.elementIdToDataMap, "formDataInit elementIdToDataMap");
commonDebug(initData.formValue, "formDataInit data");
};
//
function observe(data,initData,modelId) {
if (!data || typeof data !== 'object') {
return;
}
// 取出所有属性遍历
var keys= Object.keys(data);
commonDebug(keys, "observe keys");
for(var i=0 ;i<keys.length;i++){
var key = keys[i];
var modelIdTemp = modelId + "_" + key;
commonDebug(modelIdTemp, "observe modelIdTemp");
//=====================
if (data._fieldInfoObject === undefined) {
data._fieldInfoObject = {};
}
data._fieldInfoObject[key] = {
// _initData:initData,
fieldToElementId:modelIdTemp,
formFieldDes:initData.formFieldDes,
};
//=====================Watch
if (data._fieldWatchObject === undefined) {
data._fieldWatchObject = {};
}
data._fieldWatchObject[key] = {
// _initData:initData,
// fieldToElementId:modelIdTemp,
// formFieldDes:initData.formFieldDes,
watchFunList:[],
};
//=====================
//=====================
if(dataViewCommonJs.elementIdToDataMap[modelIdTemp]!=undefined){
throw modelIdTemp+"已经存在!"
}
dataViewCommonJs.elementIdToDataMap[modelIdTemp] = {data:data,field:key};
//=====================
defineReactive(data, key, data[key],initData,modelIdTemp);
}
};
function defineReactive(data, key, val,initData,modelId) {
observe(val,initData,modelId); // 监听子属性
Object.defineProperty(data, key, {
enumerable : true, // 可枚举
configurable : false, // 不能再define
get : function () {
commonDebug("key = " + key + ",val = " + val, "defineReactive get");
return val;
},
set : function (newVal) {
commonDebug("key = " + key + ",newVal = " + newVal, "defineReactive set");
var oldVal =val;
val = newVal;
//============
commonFieldWatchDeal(key,data,newVal,oldVal);
//============
commonUpdateView(key,data);
}
});
}
function commonFieldWatchDeal(key,data,newVal,oldVal) {
// commonDebug(field, "updateView field");
var watchFunList = data._fieldWatchObject[key].watchFunList;
if(watchFunList.length==0){
return;
}
// commonDebug(key, "commonFieldWatchDeal key");
for(var i=0 ;i<watchFunList.length;i++){
commonDebug(key, "commonFieldWatchDeal key");
watchFunList[i](newVal,oldVal);
}
}
function commonUpdateView(field,data) {
commonDebug(field, "updateView field");
commonDebug(data, "updateView data");
var fieldInfoObject = data._fieldInfoObject[field];
var fieldToElementId = fieldInfoObject.fieldToElementId;
// var ElementId = fieldToElementIdMap[field];
// setElementVal('#' + fieldToElementId, data[field]);
commonUpdateViewDeal(fieldToElementId,field,data);
}
function commonUpdateViewDeal(elementId,field,data) {
setElementVal('#' + elementId, data[field]);
}
function commonAddWatch(fieldString,initData,fun) {
var fieldStringTemp = replaceAll(fieldString,"\\.","_");
var key = initData.modelId +"_" + fieldStringTemp;
if(dataViewCommonJs.elementIdToDataMap[key]==undefined){
throw "请先调用commonFormDataInit进行初始化"
}
var data = dataViewCommonJs.elementIdToDataMap[key].data;
commonDebug(data, "commonAddWatch data");
var field = dataViewCommonJs.elementIdToDataMap[key].field;
commonDebug(field, "commonAddWatch field");
if(data._fieldWatchObject[field]==undefined){
throw "请先调用commonFormDataInit进行初始化"
}
var watchFunList = data._fieldWatchObject[field].watchFunList;
commonDebug(watchFunList, "commonAddWatch watchFunList");
if(watchFunList==undefined){
throw "请先调用commonFormDataInit进行初始化"
}
if(fun){
watchFunList.push(fun)
}else{
throw "请先输入正确的回调函数"
}
}
var dataViewCommonJs={
//全部存放id对应的数据对象和字段名,commonOnchangeFun里进行使用
elementIdToDataMap:{},
commonOnchangeFun:commonOnchangeFun,
commonFormDataInit:commonFormDataInit,
commonAddWatch:commonAddWatch,
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../../miniui/scripts/jquery-1.11.1.min.js" type="text/javascript"></script>
<script src="../commonJs.js" type="text/javascript"></script>
<script src="../jqCommonJs.js" type="text/javascript"></script>
<script src="./dataViewCommonJs.js" type="text/javascript"></script>
<!-- dataViewCommonJs-->
<style>
</style>
</head>
<body>
<div id="app">
<input type="text" id="app_name" onchange="dataViewCommonJs.commonOnchangeFun(this.id)">
<input type="text" id="app_test_id" onchange="dataViewCommonJs.commonOnchangeFun(this.id)">
<p id="show-txt"></p>
</div>
</body>
</html>
<script type="text/javascript">
// var modelDataIdMap = {
// app_name : {
// id : "app_name",
// modelDataField : "name",
// type : 'input',
// modelData : data,
// }
//
// }
//全部存放id对应的数据对象和字段名,commonOnchangeFun里进行使用
// var _elementIdToDataMap={};
// //视图数据改变通用处理(更新数据对象里的值)
// function commonOnchangeFun(elementId) {
// commonDebug(elementId, "commonOnchangeFun elementId");
// var value = getElementVal("#" + elementId);
// commonDebug(value, "commonOnchangeFun value");
// var data = _elementIdToDataMap[elementId].data;
// commonDebug(data, "commonOnchangeFun data");
// var field = _elementIdToDataMap[elementId].field;
// commonDebug(field, "commonOnchangeFun field");
//
// //更新数据对象里的值
// data[field]=value;
// }
var ss =[];
commonDebug(ss, "commonAddWatch ss");
ss.push(function () {
})
var data = {
name : 'kindeng',
test : {id : '22'},
fsize : '4545'
};
var initDataPage = {
defaultFormValue:data,
formValue:data,
modelId:"app",
formFieldDes:{}
};
dataViewCommonJs.commonFormDataInit(initDataPage);
initDataPage.formValue.name="shdjfh";
// var applyINfoData = {
// app : {
// modelKey : 'app',
// modelDataDes : {},
// modelData : data,
// }
//
// }
// dataViewCommonJs.commonAddWatch('name',initDataPage,function (newVal,oldVal) {
// commonConsole(newVal, "commonAddWatch newVal");
// commonConsole(oldVal, "commonAddWatch oldVal");
//
// initDataPage.formValue.fsize = 'aadd';
// })
dataViewCommonJs.commonAddWatch('test.id',initDataPage,function (newVal,oldVal) {
commonConsole(newVal, "commonAddWatch newVal");
commonConsole(oldVal, "commonAddWatch oldVal");
initDataPage.formValue.name = 'aadd';
})
// dataViewCommonJs.commonAddWatch('fsize',initDataPage,function (newVal,oldVal) {
// commonConsole(newVal, "commonAddWatch newVal");
// commonConsole(oldVal, "commonAddWatch oldVal");
//
// // initDataPage.formValue.name = 'aaddsdasdas';
// })
// formDataInit(initDataPage);
//
// function formDataInit(initData) {
//
// observe(initData.formValue,initData,initData.modelId);
// commonDebug(_elementIdToDataMap, "_elementIdToDataMap");
// //
// // commonDebug(initData.formValue, "initData.formValue");
// commonDebug(initData.formValue, "initData.formValue");
// };
//
//
// function observe(data,initData,modelId) {
// if (!data || typeof data !== 'object') {
// return;
// }
// // 取出所有属性遍历
// var keys= Object.keys(data);
// commonDebug(keys, "keys");
//
// for(var i=0 ;i<keys.length;i++){
// var key = keys[i];
// // for(var key in data){
// // if (initData.watchFunList === undefined) {
// // initData.watchFunList = {};
// // }
// // initData.watchFunList[key] = function ( key,data,initData) {
// // commonDebug("sub", "sub");
// // }
//
// // for(var key in data){
// var modelIdTemp = modelId + "_" + key;
//
// //=====================
// if (data._fieldInfoObject === undefined) {
// data._fieldInfoObject = {};
// }
// data._fieldInfoObject[key] = {
// // _initData:initData,
// fieldToElementId:modelIdTemp,
// formFieldDes:initData.formFieldDes,
// };
//
// //=====================
// // if (initData._fieldToElementIdMap === undefined) {
// // initData._fieldToElementIdMap = {};
// // }
// //
// // // var modelIdTemp = modelId + "_" + key;
// // initData._fieldToElementIdMap[key] = modelIdTemp;
// //=====================
// _elementIdToDataMap[modelIdTemp] = {data:data,field:key};
//
// defineReactive(data, key, data[key],initData,modelIdTemp);
// }
//
//
// // Object.keys(data).forEach(function (key,initData) {
// // if (data.watchFunList === undefined) {
// // data.watchFunList = {};
// // }
// // data.watchFunList[key] = function ( key,data,initData) {
// // commonDebug("sub", "sub");
// // }
// //
// // if (data.fieldToElementIdMap === undefined) {
// // data.fieldToElementIdMap = {};
// // }
// // data.fieldToElementIdMap[key] = initData.modelId + "_" + key;
// //
// // defineReactive(data, key, data[key],initData);
// // });
// };
//
// function defineReactive(data, key, val,initData,modelId) {
// observe(val,initData,modelId); // 监听子属性
// Object.defineProperty(data, key, {
// enumerable : true, // 可枚举
// configurable : false, // 不能再define
// get : function () {
// commonDebug("key = " + key + ",val = " + val, "defineProperty get");
// return val;
// },
// set : function (newVal) {
// commonDebug("key = " + key + ",newVal = " + newVal, "defineProperty set");
// val = newVal;
//
// updateView(key,data);
// }
// });
// }
//
// function updateView(field,data) {
// commonDebug(field, "updateView field");
// commonDebug(data, "updateView data");
//
// var fieldInfoObject = data._fieldInfoObject[field];
// var fieldToElementId = fieldInfoObject.fieldToElementId;
// // var ElementId = fieldToElementIdMap[field];
//
// setElementVal('#' + fieldToElementId, data[field]);
// }
//
// function Dep() {
// this.subs = [];
// }
//
// Dep.prototype = {
// addSub : function (sub) {
// this.subs.push(sub);
// },
// notify : function () {
// this.subs.forEach(function (sub) {
// sub.update();
// });
// }
// };
// commonDebug(data, "data");
// observe(data);
// data.name = 'dmq'; // 哈哈哈,监听到值变化了 kindeng --> dmq
// data.name = 'dmq2'; // 哈哈哈,监听到值变化了 kindeng --> dmq
// data.name = 'dmq3'; // 哈哈哈,监听到值变化了 kindeng --> dmq
// data.name = 'dmq4'; // 哈哈哈,监听到值变化了 kindeng --> dmq
// data.name = 'dmq5'; // 哈哈哈,监听到值变化了 kindeng --> dmq
// var dd = data.name;
// commonDebug(dd, "dd");
//
// data.name = 'aadd'; // 哈哈哈,监听到值变化了 kindeng --> dmq
// var dd = data.name;
// commonDebug(dd, "dd");
// commonDebug(data, "data");
// var obj = {}
// Object.defineProperty(obj, 'txt', {
// get: function () {
// return obj
// },
// set: function (newValue) {
// document.getElementById('txt').value = newValue
// document.getElementById('show-txt').innerHTML = newValue
// }
// })
// document.addEventListener('keyup', function (e) {
// obj.txt = e.target.value
// })
</script>
// var _elementIdToDataMap={};
var commonDebugFlag = true;
//视图数据改变通用处理(更新数据对象里的值)
function commonOnchangeFun(elementId) {
commonDebug(elementId, "commonOnchangeFun elementId");
var value = getElementVal("#" + elementId);
commonDebug(value, "commonOnchangeFun value");
var data = dataViewCommonJs.elementIdToDataMap[elementId].data;
commonDebug(data, "commonOnchangeFun data");
var field = dataViewCommonJs.elementIdToDataMap[elementId].field;
commonDebug(field, "commonOnchangeFun field");
//更新数据对象里的值
data[field]=value;
}
// var initDataPage = {
// defaultFormValue:data,
// formValue:{},
// modelId:"app",
// formFieldDes:{}
// };
// formDataInit(initDataPage);
function commonFormDataInit(initData) {
// var defaultFormValue=deepClone(initData.defaultFormValue);
var formValue=deepClone(initData.defaultFormValue);
initData.formValue=formValue;
observe(initData.formValue,initData,initData.modelId,initData.formFieldDes);
//
//初始值进行一次赋值
// objToObjByField(defaultFormValue,initData.formValue);
commonDebug(dataViewCommonJs.elementIdToDataMap, "formDataInit elementIdToDataMap");
commonDebug(initData.formValue, "formDataInit data");
};
//
function observe(data,initData,modelId,formFieldDes) {
if (!data || typeof data !== 'object') {
return;
}
// 取出所有属性遍历
var keys= Object.keys(data);
commonDebug(keys, "observe keys");
for(var i=0 ;i<keys.length;i++){
var key = keys[i];
var modelIdTemp = modelId + "_" + key;
commonDebug(modelIdTemp, "observe modelIdTemp");
//=====================
if (data._fieldInfoObject === undefined) {
data._fieldInfoObject = {};
}
data._fieldInfoObject[key] = {
// _initData:initData,
fieldToElementId:modelIdTemp,
formFieldDes:initData.formFieldDes,
};
//=====================Watch
if (data._fieldWatchObject === undefined) {
data._fieldWatchObject = {};
}
data._fieldWatchObject[key] = {
// _initData:initData,
// fieldToElementId:modelIdTemp,
// formFieldDes:initData.formFieldDes,
watchFunList:[],
};
//=====================
//=====================
if(dataViewCommonJs.elementIdToDataMap[modelIdTemp]!=undefined){
throw modelIdTemp+"已经存在!"
}
var aa = formFieldDes[key];
var bb = formFieldDes.id;
dataViewCommonJs.elementIdToDataMap[modelIdTemp] = {data:data,field:key,dataFieldDes:formFieldDes[key]};
//=====================
defineReactive(data, key, data[key],initData,modelIdTemp,formFieldDes[key].formFieldDes);
}
};
function defineReactive(data, key, val,initData,modelId,formFieldDes) {
observe(val,initData,modelId,formFieldDes); // 监听子属性
Object.defineProperty(data, key, {
enumerable : true, // 可枚举
configurable : false, // 不能再define
get : function () {
commonDebug("key = " + key + ",val = " + val, "defineReactive get");
return val;
},
set : function (newVal) {
commonDebug("key = " + key + ",newVal = " + newVal, "defineReactive set");
var oldVal =val;
val = newVal;
//============
commonFieldWatchDeal(key,data,newVal,oldVal);
//============
commonUpdateView(key,data);
}
});
}
function commonFieldWatchDeal(key,data,newVal,oldVal) {
// commonDebug(field, "updateView field");
var watchFunList = data._fieldWatchObject[key].watchFunList;
if(watchFunList.length==0){
return;
}
// commonDebug(key, "commonFieldWatchDeal key");
for(var i=0 ;i<watchFunList.length;i++){
commonDebug(key, "commonFieldWatchDeal key");
watchFunList[i](newVal,oldVal);
}
}
function commonUpdateView(field,data) {
commonDebug(field, "updateView field");
commonDebug(data, "updateView data");
// var fieldInfoObject = data._fieldInfoObject[field];
// var fieldToElementId = fieldInfoObject.fieldToElementId;
// // var ElementId = fieldToElementIdMap[field];
// // setElementVal('#' + fieldToElementId, data[field]);
//
// commonUpdateViewDeal(fieldToElementId,field,data);
dataViewCommonJs.viewUpdateFlag=true;
}
function commonUpdateViewDeal(elementId,field,data) {
setElementVal('#' + elementId, data[field]);
}
function commonAddWatch(fieldString,initData,fun) {
var fieldStringTemp = replaceAll(fieldString,"\\.","_");
var key = initData.modelId +"_" + fieldStringTemp;
if(dataViewCommonJs.elementIdToDataMap[key]==undefined){
throw "请先调用commonFormDataInit进行初始化"
}
var data = dataViewCommonJs.elementIdToDataMap[key].data;
commonDebug(data, "commonAddWatch data");
var field = dataViewCommonJs.elementIdToDataMap[key].field;
commonDebug(field, "commonAddWatch field");
if(data._fieldWatchObject[field]==undefined){
throw "请先调用commonFormDataInit进行初始化"
}
var watchFunList = data._fieldWatchObject[field].watchFunList;
commonDebug(watchFunList, "commonAddWatch watchFunList");
if(watchFunList==undefined){
throw "请先调用commonFormDataInit进行初始化"
}
if(fun){
watchFunList.push(fun)
}else{
throw "请先输入正确的回调函数"
}
}
function viewUpdateDealFun() {
var keys = Object.keys(dataViewCommonJs.elementIdToDataMap);
for(var i=0 ;i<keys.length;i++){
var key = keys[i];
var data = dataViewCommonJs.elementIdToDataMap[key].data;
commonDebug(data, "commonAddWatch data");
var field = dataViewCommonJs.elementIdToDataMap[key].field;
commonDebug(field, "commonAddWatch data");
// var field = dataViewCommonJs.elementIdToDataMap[key].field;
// commonDebug(field, "commonAddWatch data");
var fieldToElementId = key;
commonUpdateViewDeal(fieldToElementId,field,data);
}
}
function viewUpdateTimeoutFun() {
// commonDebug("", "viewUpdateTimeoutFun");
if(dataViewCommonJs.viewUpdateFlag==true){
viewUpdateDealFun();
dataViewCommonJs.viewUpdateFlag=false;
}
window.setTimeout(viewUpdateTimeoutFun, 300);
}
var dataViewCommonJs={
viewUpdateFlag:false,//视图更新标志,true时才会进行视图数据更新
viewUpdateTimeout:window.setTimeout(viewUpdateTimeoutFun, 300),
//全部存放id对应的数据对象和字段名,commonOnchangeFun里进行使用
elementIdToDataMap:{},
commonOnchangeFun:commonOnchangeFun,
commonFormDataInit:commonFormDataInit,
commonAddWatch:commonAddWatch,
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../../miniui/scripts/jquery-1.11.1.min.js" type="text/javascript"></script>
<script src="../commonJs.js" type="text/javascript"></script>
<script src="../jqCommonJs.js" type="text/javascript"></script>
<script src="./dataViewCommonJs.js" type="text/javascript"></script>
<!-- dataViewCommonJs-->
<style>
</style>
</head>
<body>
<div id="app">
<input type="text" id="app_name" onchange="dataViewCommonJs.commonOnchangeFun(this.id)">
<input type="text" id="app_test_id" onchange="dataViewCommonJs.commonOnchangeFun(this.id)">
<p id="show-txt"></p>
</div>
</body>
</html>
<script type="text/javascript">
// var modelDataIdMap = {
// app_name : {
// id : "app_name",
// modelDataField : "name",
// type : 'input',
// modelData : data,
// }
//
// }
//全部存放id对应的数据对象和字段名,commonOnchangeFun里进行使用
// var _elementIdToDataMap={};
// //视图数据改变通用处理(更新数据对象里的值)
// function commonOnchangeFun(elementId) {
// commonDebug(elementId, "commonOnchangeFun elementId");
// var value = getElementVal("#" + elementId);
// commonDebug(value, "commonOnchangeFun value");
// var data = _elementIdToDataMap[elementId].data;
// commonDebug(data, "commonOnchangeFun data");
// var field = _elementIdToDataMap[elementId].field;
// commonDebug(field, "commonOnchangeFun field");
//
// //更新数据对象里的值
// data[field]=value;
// }
var ss = [];
commonDebug(ss, "commonAddWatch ss");
ss.push(function () {
})
var data = {
name : 'kindeng',
test : {
id : '22',
trt : 'sdsf'
},
fsize : '4545'
};
var initDataPage = {
defaultFormValue : data,
formValue : data,
modelId : "app",
formFieldDes : {
name : {type : 'input'},
fsize : {type : 'input_num'},
test : {
formFieldDes : {
id : {type : 'tefst'},
trt : {type : 'trt'}
}
},
}
};
dataViewCommonJs.commonFormDataInit(initDataPage);
initDataPage.formValue.name = "shdjfh";
// var applyINfoData = {
// app : {
// modelKey : 'app',
// modelDataDes : {},
// modelData : data,
// }
//
// }
// dataViewCommonJs.commonAddWatch('name',initDataPage,function (newVal,oldVal) {
// commonConsole(newVal, "commonAddWatch newVal");
// commonConsole(oldVal, "commonAddWatch oldVal");
//
// initDataPage.formValue.fsize = 'aadd';
// })
dataViewCommonJs.commonAddWatch('test.id', initDataPage, function (newVal, oldVal) {
commonConsole(newVal, "commonAddWatch newVal");
commonConsole(oldVal, "commonAddWatch oldVal");
initDataPage.formValue.name = 'aadd';
})
// dataViewCommonJs.commonAddWatch('fsize',initDataPage,function (newVal,oldVal) {
// commonConsole(newVal, "commonAddWatch newVal");
// commonConsole(oldVal, "commonAddWatch oldVal");
//
// // initDataPage.formValue.name = 'aaddsdasdas';
// })
</script>
分享到:
相关推荐
关于组织参加“第八届‘泰迪杯’数据挖掘挑战赛”的通知-4页
PyMySQL-1.1.0rc1.tar.gz
技术资料分享CC2530中文数据手册完全版非常好的技术资料.zip
docker构建php开发环境
VB程序实例,可供参考学习使用,希望对你有所帮助
pytz库的主要功能 时区转换:pytz库允许用户将时间从一个时区转换到另一个时区,这对于处理跨国业务或需要处理多地时间的数据分析尤为重要。 历史时区数据支持:pytz库不仅提供了当前的时区数据,还包含了历史上不同时期的时区信息,这使得它在处理历史数据时具有无与伦比的优势。 夏令时处理:pytz库能够自动处理夏令时的变化,当获取某个时区的时间时,它会自动考虑是否处于夏令时期间。 与datetime模块集成:pytz库可以与Python标准库中的datetime模块一起使用,以确保在涉及不同时区的场景中时间的准确性。
VB程序实例-为程序添加快捷键.zip
画2、3维的隐含数
pytz库的主要功能 时区转换:pytz库允许用户将时间从一个时区转换到另一个时区,这对于处理跨国业务或需要处理多地时间的数据分析尤为重要。 历史时区数据支持:pytz库不仅提供了当前的时区数据,还包含了历史上不同时期的时区信息,这使得它在处理历史数据时具有无与伦比的优势。 夏令时处理:pytz库能够自动处理夏令时的变化,当获取某个时区的时间时,它会自动考虑是否处于夏令时期间。 与datetime模块集成:pytz库可以与Python标准库中的datetime模块一起使用,以确保在涉及不同时区的场景中时间的准确性。
加载虚拟光驱并打开ma软件.
VB程序实例-图像的缩小.zip
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
推荐几个国外 Java 大佬的优质博客.docx
Arduino一分钟快速在vs code 编译开发Arduino
强网杯objective-c可视化演示5中的常见排序算法,包括选择排序、气泡排序、插入排序、快速排序、堆排序等.zip
VB程序实例,可供参考学习使用,希望对你有所帮助
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
强网杯
技术资料分享AT070TN92非常好的技术资料.zip