diff --git "a/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/1.OpenCV\347\256\200\344\273\213/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/1.OpenCV\347\256\200\344\273\213/config.json" index 3817b6501383c96e96816beae22d8849a026246b..63a61a7fa1687105262fed926e722a0fe84d51e1 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/1.OpenCV\347\256\200\344\273\213/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/1.OpenCV\347\256\200\344\273\213/config.json" @@ -10,7 +10,11 @@ ], "children": [], "node_id": "opencv-626bf6e70ba04d18b1147571c08d85bc", - "title": "OpenCV的起源" + "title": "OpenCV的起源", + "keywords_must": [ + "起源" + ], + "keywords_forbid": [] } } ], @@ -18,5 +22,9 @@ "helloworld.json" ], "node_id": "opencv-77f629e4593845b0bf97e74ca8ec95ae", - "title": "OpenCV简介" + "title": "OpenCV简介", + "keywords_must": [ + "简介" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/2.OpenCV\345\256\211\350\243\205/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/2.OpenCV\345\256\211\350\243\205/config.json" index 32cec89612a0caa7263ccfea21208a14d8628416..6103c77db6b8c010c435598c7bc4e0353337bdee 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/2.OpenCV\345\256\211\350\243\205/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/2.OpenCV\345\256\211\350\243\205/config.json" @@ -4,6 +4,10 @@ "node_id": "opencv-662dbd65c89d4ddb9e392f44ffe16e1a", "title": "OpenCV安装", "export": [ - "install.json" - ] + "install.json" + ], + "keywords_must": [ + "安装" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/3.\345\233\276\345\203\217\347\232\204\345\237\272\346\234\254\346\223\215\344\275\234/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/3.\345\233\276\345\203\217\347\232\204\345\237\272\346\234\254\346\223\215\344\275\234/config.json" index 04e7547d4bd10b444f921d767e2c83e8f88666d7..ed426be8a771d786e59a028a3206f7291cba37d5 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/3.\345\233\276\345\203\217\347\232\204\345\237\272\346\234\254\346\223\215\344\275\234/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/3.\345\233\276\345\203\217\347\232\204\345\237\272\346\234\254\346\223\215\344\275\234/config.json" @@ -8,5 +8,9 @@ "pixel.json", "hack.json", "ball.json" - ] + ], + "keywords_must": [ + "基本操作" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/4.IO\344\270\216GUI/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/4.IO\344\270\216GUI/config.json" index 5b974613ffd466e56d4f1f1eac4d145571462cb3..995ed57ed00daca7ae8fc65065c07bf1ef8c5c9d 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/4.IO\344\270\216GUI/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/4.IO\344\270\216GUI/config.json" @@ -3,9 +3,14 @@ "keywords": [], "children": [], "export": [ - "img_read_write.json", - "video_read_write.json", - "img_buffer_convert.json", - "doodle.json" - ] + "img_read_write.json", + "video_read_write.json", + "img_buffer_convert.json", + "doodle.json" + ], + "keywords_must": [ + "IO", + "GUI" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/config.json" index b7fdf6189acdef63384840b5abf42e0e49902daf..e72a12ab316a9e5817355695072228b88c1de3d1 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/1.OpenCV\345\237\272\347\241\200/config.json" @@ -1,5 +1,7 @@ { "keywords": [], "node_id": "opencv-f7ecf411195447b3897ff2324f7aa11b", - "title": "OpenCV基础" + "title": "OpenCV基础", + "keywords_must": [], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/1.\351\230\210\345\200\274/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/1.\351\230\210\345\200\274/config.json" index 1c67bff2a61e405d3ab294c4e82362e8e93e72d8..b86940d4a886797a9e826bea6ded39ef03dbb635 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/1.\351\230\210\345\200\274/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/1.\351\230\210\345\200\274/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "Grayscale.json" - ] + ], + "keywords_must": [ + "阈值" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/2.\350\205\220\350\232\200\344\270\216\350\206\250\350\203\200/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/2.\350\205\220\350\232\200\344\270\216\350\206\250\350\203\200/config.json" index 2c7075a001d3a655c17c28f66610db1720b37391..f454a387ec68ce33d356369cdaa511d9e6b08dce 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/2.\350\205\220\350\232\200\344\270\216\350\206\250\350\203\200/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/2.\350\205\220\350\232\200\344\270\216\350\206\250\350\203\200/config.json" @@ -4,5 +4,10 @@ "children": [], "export": [ "erosion_dilation.json" - ] + ], + "keywords_must": [ + "腐蚀", + "膨胀" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/3.\345\274\200\350\277\220\347\256\227\344\270\216\351\227\255\350\277\220\347\256\227/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/3.\345\274\200\350\277\220\347\256\227\344\270\216\351\227\255\350\277\220\347\256\227/config.json" index cac7211afec0b2bbd0adb04c307c938352dab12c..d68bb0d921f78376bcb9b0ad75591a7a47ce4529 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/3.\345\274\200\350\277\220\347\256\227\344\270\216\351\227\255\350\277\220\347\256\227/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/3.\345\274\200\350\277\220\347\256\227\344\270\216\351\227\255\350\277\220\347\256\227/config.json" @@ -5,5 +5,10 @@ "export": [ "open.json", "close.json" - ] + ], + "keywords_must": [ + "开运算", + "闭运算" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/4.\350\277\236\351\200\232\345\214\272\345\237\237\345\210\206\346\236\220/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/4.\350\277\236\351\200\232\345\214\272\345\237\237\345\210\206\346\236\220/config.json" index fc8fb9e898651e904df13619649628e248c1acd9..85f01a67971beaa37fe5c342f28d108f8e7515c0 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/4.\350\277\236\351\200\232\345\214\272\345\237\237\345\210\206\346\236\220/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/4.\350\277\236\351\200\232\345\214\272\345\237\237\345\210\206\346\236\220/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "connect.json" - ] + ], + "keywords_must": [ + "连通区域分析" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/5.\350\275\256\345\273\223/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/5.\350\275\256\345\273\223/config.json" index 17385b2b998b251c8601760029a4bd8aeb2f2d7b..058de7b2081b6be2b9ab83920aac1341152132af 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/5.\350\275\256\345\273\223/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/5.\350\275\256\345\273\223/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "Contours.json" - ] + ], + "keywords_must": [ + "轮廓" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/config.json" index 9c07f63e777fdfe3e1e2cab8c5dd10284c4f5f91..8fca549068ad5acde38a85a411210a3cb097292c 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/2.\344\272\214\345\200\274\345\233\276\345\203\217\345\244\204\347\220\206/config.json" @@ -1,4 +1,6 @@ { "node_id": "opencv-c761ca9b99984b2d8633855c527ab10a", - "keywords": [] + "keywords": [], + "keywords_must": [], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/1.\345\275\251\350\211\262\347\251\272\351\227\264/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/1.\345\275\251\350\211\262\347\251\272\351\227\264/config.json" index 175bb57a777718025687ad5d8bf2c8a610fbd395..8735f2a7395ad522ed1a1aa461a337d2cf0522b6 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/1.\345\275\251\350\211\262\347\251\272\351\227\264/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/1.\345\275\251\350\211\262\347\251\272\351\227\264/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "flower.json" - ] + ], + "keywords_must": [ + "彩色空间" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/2.\347\233\264\346\226\271\345\233\276\345\235\207\350\241\241\345\214\226/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/2.\347\233\264\346\226\271\345\233\276\345\235\207\350\241\241\345\214\226/config.json" index c267260d65327d88774f0e95dc178432bb8d825e..706468d706acc4f77bee6e4ab0c5b3fc28d5b022 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/2.\347\233\264\346\226\271\345\233\276\345\235\207\350\241\241\345\214\226/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/2.\347\233\264\346\226\271\345\233\276\345\235\207\350\241\241\345\214\226/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "fish.json" - ] + ], + "keywords_must": [ + "均衡化" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/3.\345\233\276\345\203\217\346\273\244\346\263\242/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/3.\345\233\276\345\203\217\346\273\244\346\263\242/config.json" index 18ec2d66272af6b2bf198034ab3159fc8418a514..dc5b1f9899db8083eb33407e56aaa4609beb8d56 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/3.\345\233\276\345\203\217\346\273\244\346\263\242/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/3.\345\233\276\345\203\217\346\273\244\346\263\242/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "BoxFilter.json" - ] + ], + "keywords_must": [ + "图像滤波" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/4.\346\242\257\345\272\246/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/4.\346\242\257\345\272\246/config.json" index c703cfb1607dc9dd0876a1f7011cf2fbea25fa31..006e7c7ba7811d45f260c310aa39ec48abbe739a 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/4.\346\242\257\345\272\246/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/4.\346\242\257\345\272\246/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "Gradient.json" - ] + ], + "keywords_must": [ + "梯度" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/config.json" index 4e380564b46a97da82856b1c4bc9bc04ea8c5091..3ac2fc9cd84b2bb0f70241d60b51c637ceac01ab 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/3.\345\233\276\345\203\217\345\242\236\345\274\272\345\222\214\346\273\244\346\263\242/config.json" @@ -1,4 +1,6 @@ { "node_id": "opencv-88ba9fbf01cc42af9561dc99151b351a", - "keywords": [] + "keywords": [], + "keywords_must": [], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/1.\344\273\277\345\260\204\345\217\230\346\215\242/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/1.\344\273\277\345\260\204\345\217\230\346\215\242/config.json" index ed38ffc26864edf4611ff697396fc7c8097b4d2c..41374f4d45b1d8fbae91221e5eca1fa7cfef7b3c 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/1.\344\273\277\345\260\204\345\217\230\346\215\242/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/1.\344\273\277\345\260\204\345\217\230\346\215\242/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "Affine1.json" - ] + ], + "keywords_must": [ + "仿射变换" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/2.\345\215\225\345\272\224\346\200\247\345\217\230\346\215\242/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/2.\345\215\225\345\272\224\346\200\247\345\217\230\346\215\242/config.json" index aa9d072ca2d86ff2ae79712bb8991769e9c5d408..1b13daa7ce90d9fb3e5f6e27164973e73deb661b 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/2.\345\215\225\345\272\224\346\200\247\345\217\230\346\215\242/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/2.\345\215\225\345\272\224\346\200\247\345\217\230\346\215\242/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "rust_face.json" - ] + ], + "keywords_must": [ + "单应性" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/3.\345\233\276\345\203\217\347\211\271\345\276\201\344\270\216\347\211\271\345\276\201\346\217\220\345\217\226/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/3.\345\233\276\345\203\217\347\211\271\345\276\201\344\270\216\347\211\271\345\276\201\346\217\220\345\217\226/config.json" index 1f485e42a89e48d56fbb4d4d18d303691259880a..5b27fedbc0ebd60d126568a3275a2458cddc5579 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/3.\345\233\276\345\203\217\347\211\271\345\276\201\344\270\216\347\211\271\345\276\201\346\217\220\345\217\226/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/3.\345\233\276\345\203\217\347\211\271\345\276\201\344\270\216\347\211\271\345\276\201\346\217\220\345\217\226/config.json" @@ -4,5 +4,10 @@ "children": [], "export": [ "harris.json" - ] + ], + "keywords_must": [ + "图像特征", + "特征提取" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/4.\347\211\271\345\276\201\345\214\271\351\205\215/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/4.\347\211\271\345\276\201\345\214\271\351\205\215/config.json" index 4aa24f514b82cf1347757dda86262e88b8dab203..6dd0331aca9acd87aef1bfe83deb3119c73b8e89 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/4.\347\211\271\345\276\201\345\214\271\351\205\215/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/4.\347\211\271\345\276\201\345\214\271\351\205\215/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "match.json" - ] + ], + "keywords_must": [ + "特征匹配" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/config.json" index 37855aa6010a35c8e2b4e3bf5751c4fafc19525d..f4f33414344a9e0cf922e531182578278a82c2ce 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/4.\345\207\240\344\275\225\345\217\230\346\215\242\345\222\214\345\233\276\345\203\217\347\211\271\345\276\201/config.json" @@ -1,4 +1,6 @@ { "node_id": "opencv-ec67edb4eecb44e396d7e7f7163fedb7", - "keywords": [] + "keywords": [], + "keywords_must": [], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/5.\345\233\276\345\203\217\350\257\206\345\210\253/1.\344\272\272\350\204\270\350\257\206\345\210\253/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/5.\345\233\276\345\203\217\350\257\206\345\210\253/1.\344\272\272\350\204\270\350\257\206\345\210\253/config.json" index c666b0bf67a80274d668abc69fce801bc687e65c..8aeae4f0c01278bd2a1ab0bf931dc98ab5795312 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/5.\345\233\276\345\203\217\350\257\206\345\210\253/1.\344\272\272\350\204\270\350\257\206\345\210\253/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/5.\345\233\276\345\203\217\350\257\206\345\210\253/1.\344\272\272\350\204\270\350\257\206\345\210\253/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "face_detect.json" - ] + ], + "keywords_must": [ + "人脸识别" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/5.\345\233\276\345\203\217\350\257\206\345\210\253/2.\351\270\237\345\233\276\350\257\206\345\210\253/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/5.\345\233\276\345\203\217\350\257\206\345\210\253/2.\351\270\237\345\233\276\350\257\206\345\210\253/config.json" index 14909277d789d66e72efb3a6a2d1a52bf3cd15c8..aeb2ad5593bb9732057dd135a3f672f7f08e21f6 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/5.\345\233\276\345\203\217\350\257\206\345\210\253/2.\351\270\237\345\233\276\350\257\206\345\210\253/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/5.\345\233\276\345\203\217\350\257\206\345\210\253/2.\351\270\237\345\233\276\350\257\206\345\210\253/config.json" @@ -4,5 +4,10 @@ "children": [], "export": [ "detect_bird.json" - ] + ], + "keywords_must": [ + "鸟类", + "鸟图" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/5.\345\233\276\345\203\217\350\257\206\345\210\253/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/5.\345\233\276\345\203\217\350\257\206\345\210\253/config.json" index 42005467b323fb3d8937f39319f38d545b12f41a..aae5b6d6769ff2dbe532b191be2ced53e1d7d32a 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/5.\345\233\276\345\203\217\350\257\206\345\210\253/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/5.\345\233\276\345\203\217\350\257\206\345\210\253/config.json" @@ -1,4 +1,6 @@ { "node_id": "opencv-6794162341944f869fcefa767cba00c7", - "keywords": [] + "keywords": [], + "keywords_must": [], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/6.\350\247\206\351\242\221\345\210\206\346\236\220/1.\345\205\211\346\265\201/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/6.\350\247\206\351\242\221\345\210\206\346\236\220/1.\345\205\211\346\265\201/config.json" index f36bf84932781770e480097ec16cd887f0f2bdd7..8e62a3ab4d3c83ab8cc4cdbdc132992cbbb9420f 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/6.\350\247\206\351\242\221\345\210\206\346\236\220/1.\345\205\211\346\265\201/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/6.\350\247\206\351\242\221\345\210\206\346\236\220/1.\345\205\211\346\265\201/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "flow.json" - ] + ], + "keywords_must": [ + "光流" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/6.\350\247\206\351\242\221\345\210\206\346\236\220/2.\347\233\256\346\240\207\350\267\237\350\270\252/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/6.\350\247\206\351\242\221\345\210\206\346\236\220/2.\347\233\256\346\240\207\350\267\237\350\270\252/config.json" index d54cd340de7a43084fba60298343c975a41a28e5..1bbc0b9528c061ffb236962c80b2740e13c33023 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/6.\350\247\206\351\242\221\345\210\206\346\236\220/2.\347\233\256\346\240\207\350\267\237\350\270\252/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/6.\350\247\206\351\242\221\345\210\206\346\236\220/2.\347\233\256\346\240\207\350\267\237\350\270\252/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "obj_tracker.json" - ] + ], + "keywords_must": [ + "目标跟踪" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/6.\350\247\206\351\242\221\345\210\206\346\236\220/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/6.\350\247\206\351\242\221\345\210\206\346\236\220/config.json" index 0ea6905c2c9203003d38d15f07e395bca847c6b8..8bf8880146a69188fbd9c1dcd1f8d6ebf8f682f2 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/6.\350\247\206\351\242\221\345\210\206\346\236\220/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/6.\350\247\206\351\242\221\345\210\206\346\236\220/config.json" @@ -1,4 +1,6 @@ { "node_id": "opencv-6bd1f503ebb6418da84be85f4766aa83", - "keywords": [] + "keywords": [], + "keywords_must": [], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/1.\345\233\276\345\203\217\345\210\206\347\261\273/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/1.\345\233\276\345\203\217\345\210\206\347\261\273/config.json" index 88e8124a5294936c49dd2820b346f8a9c3a16699..fa6fef6e1f14fe608f7570aed55b068921c0add0 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/1.\345\233\276\345\203\217\345\210\206\347\261\273/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/1.\345\233\276\345\203\217\345\210\206\347\261\273/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "classification.json" - ] + ], + "keywords_must": [ + "图像分类" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/2.\347\233\256\346\240\207\346\243\200\346\265\213/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/2.\347\233\256\346\240\207\346\243\200\346\265\213/config.json" index bf3ffbcaede54bf53ff32abd876033e25dd75b80..e8f9a14b60e4f1623113f0cf0d33a9476fea4421 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/2.\347\233\256\346\240\207\346\243\200\346\265\213/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/2.\347\233\256\346\240\207\346\243\200\346\265\213/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "deep_learning_object_detection.json" - ] + ], + "keywords_must": [ + "目标检测" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/3.\344\272\272\350\204\270\346\243\200\346\265\213/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/3.\344\272\272\350\204\270\346\243\200\346\265\213/config.json" index 8efef23a93594a9f229208675656b15635e714c5..75d3835a4f234ac3b306c327d1f2916e1dea65e0 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/3.\344\272\272\350\204\270\346\243\200\346\265\213/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/3.\344\272\272\350\204\270\346\243\200\346\265\213/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "detect_faces.json" - ] + ], + "keywords_must": [ + "人脸检测" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/4.\345\247\277\346\200\201\344\274\260\350\256\241/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/4.\345\247\277\346\200\201\344\274\260\350\256\241/config.json" index 87f0caaa6ead5838f4d3b03a891895a7178742bc..19867dd175480457f0511f11a68c2e4127ebc957 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/4.\345\247\277\346\200\201\344\274\260\350\256\241/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/4.\345\247\277\346\200\201\344\274\260\350\256\241/config.json" @@ -4,5 +4,9 @@ "children": [], "export": [ "attitude_estimation.json" - ] + ], + "keywords_must": [ + "姿态估计" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/5.\350\275\246\350\276\206\346\243\200\346\265\213/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/5.\350\275\246\350\276\206\346\243\200\346\265\213/config.json" index c08b59e623a3c8c0104c87ae894d8433090ba837..a40f0c301e2593808704fae42c78881e457dee3d 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/5.\350\275\246\350\276\206\346\243\200\346\265\213/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/5.\350\275\246\350\276\206\346\243\200\346\265\213/config.json" @@ -4,5 +4,9 @@ "export": [ "opencv-yolo-inference-vehicle.json" ], - "node_id": "opencv-d3ca3567cef647b9bb960d7216361351" + "node_id": "opencv-d3ca3567cef647b9bb960d7216361351", + "keywords_must": [ + "车辆检测" + ], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/config.json" index ad8029be04aa416ae427cf014021244ecca8bb05..6abb2416ac5a070871e61e8e1b4a3a59f06f3cec 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/7.OpenCV\344\270\255\347\232\204\346\267\261\345\272\246\345\255\246\344\271\240/config.json" @@ -1,4 +1,6 @@ { "node_id": "opencv-81b455e5341a4d26863ee2519c9b2d70", - "keywords": [] + "keywords": [], + "keywords_must": [], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.OpenCV\345\210\235\351\230\266/config.json" "b/data/1.OpenCV\345\210\235\351\230\266/config.json" index f87da78d03fb174dd5d2b45d6398846d301b32fb..46f2d18986c095d2d3a93cdcfd1369daaed22807 100644 --- "a/data/1.OpenCV\345\210\235\351\230\266/config.json" +++ "b/data/1.OpenCV\345\210\235\351\230\266/config.json" @@ -2,5 +2,7 @@ "export": [], "node_id": "opencv-b943de85e3ad494885f0b4b529053c5a", "title": "OpenCV初阶", - "keywords":[] + "keywords": [], + "keywords_must": [], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/2.OpenCV\344\270\255\351\230\266/config.json" "b/data/2.OpenCV\344\270\255\351\230\266/config.json" index c16af783d6e0dc52fde4660938ffdddf3f25fa57..b377982fdec03757915e92b9fdfc6921fffb66b1 100644 --- "a/data/2.OpenCV\344\270\255\351\230\266/config.json" +++ "b/data/2.OpenCV\344\270\255\351\230\266/config.json" @@ -2,5 +2,7 @@ "export": [], "keywords": [], "node_id": "opencv-e92c03e7b84c4c4ea7d23a2c32b88932", - "title": "OpenCV中阶" + "title": "OpenCV中阶", + "keywords_must": [], + "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/3.OpenCV\351\253\230\351\230\266/config.json" "b/data/3.OpenCV\351\253\230\351\230\266/config.json" index 315932bf8d42200c171f3272f75a1b0c261c4ab0..0880b9b47816dbebd4eef8e152480d6a7ad73d3a 100644 --- "a/data/3.OpenCV\351\253\230\351\230\266/config.json" +++ "b/data/3.OpenCV\351\253\230\351\230\266/config.json" @@ -2,5 +2,7 @@ "export": [], "keywords": [], "node_id": "opencv-f27da6fd72924d1fbd05c6aff0fed4b7", - "title": "OpenCV高阶" + "title": "OpenCV高阶", + "keywords_must": [], + "keywords_forbid": [] } \ No newline at end of file diff --git a/data/config.json b/data/config.json index be1e62f16daba41e81e29594bf0c19a1c3f7c070..59b92a348282ae6a6c6ef262c5d6224e135ec48f 100644 --- a/data/config.json +++ b/data/config.json @@ -2,5 +2,7 @@ "tree_name": "opencv", "keywords": [], "title": "OpenCV", - "node_id": "opencv-22ad85b4166044c897cd32f625d21001" + "node_id": "opencv-22ad85b4166044c897cd32f625d21001", + "keywords_must": [], + "keywords_forbid": [] } \ No newline at end of file diff --git a/data/tree.json b/data/tree.json index 888cddd68a5f8eca777404cec87edd67e07e570a..85f7a0d74df942f176ad42462f91bcb961c8fca2 100644 --- a/data/tree.json +++ b/data/tree.json @@ -27,17 +27,29 @@ ], "children": [], "node_id": "opencv-626bf6e70ba04d18b1147571c08d85bc", - "title": "OpenCV的起源" + "title": "OpenCV的起源", + "keywords_must": [ + "起源" + ], + "keywords_forbid": [] } } - ] + ], + "keywords_must": [ + "简介" + ], + "keywords_forbid": [] } }, { "OpenCV安装": { "node_id": "opencv-662dbd65c89d4ddb9e392f44ffe16e1a", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "安装" + ], + "keywords_forbid": [] } }, { @@ -46,17 +58,28 @@ "keywords": [ "OpenCV颜色空间" ], - "children": [] + "children": [], + "keywords_must": [ + "基本操作" + ], + "keywords_forbid": [] } }, { "IO与GUI": { "node_id": "opencv-04cf975c42894174bd5619ed44ea5e87", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "IO", + "GUI" + ], + "keywords_forbid": [] } } - ] + ], + "keywords_must": [], + "keywords_forbid": [] } }, { @@ -68,38 +91,62 @@ "阈值": { "node_id": "opencv-b77391c3fa5648f4bb92e990d6cf1922", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "阈值" + ], + "keywords_forbid": [] } }, { "腐蚀与膨胀": { "node_id": "opencv-43cb627865154bb69eaad017845e8944", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "腐蚀", + "膨胀" + ], + "keywords_forbid": [] } }, { "开运算与闭运算": { "node_id": "opencv-50c11401b1e8431c964f0771cfe7941b", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "开运算", + "闭运算" + ], + "keywords_forbid": [] } }, { "连通区域分析": { "node_id": "opencv-4fa8c9dee0b04714b3a9ac7ba402be5b", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "连通区域分析" + ], + "keywords_forbid": [] } }, { "轮廓": { "node_id": "opencv-9f13f163a994474a9edafc12adcfe529", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "轮廓" + ], + "keywords_forbid": [] } } - ] + ], + "keywords_must": [], + "keywords_forbid": [] } }, { @@ -111,31 +158,49 @@ "彩色空间": { "node_id": "opencv-996898f197114cd3b4195cc6de7edc42", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "彩色空间" + ], + "keywords_forbid": [] } }, { "直方图均衡化": { "node_id": "opencv-42497d66251142e58892ffdd81a59d5a", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "均衡化" + ], + "keywords_forbid": [] } }, { "图像滤波": { "node_id": "opencv-ff01e231d0234005b8167d63652c827b", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "图像滤波" + ], + "keywords_forbid": [] } }, { "梯度": { "node_id": "opencv-bc6db682e6744c048c801360db22b182", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "梯度" + ], + "keywords_forbid": [] } } - ] + ], + "keywords_must": [], + "keywords_forbid": [] } }, { @@ -147,31 +212,50 @@ "仿射变换": { "node_id": "opencv-2ee9206f0d84472cb0458b4c5fd695cc", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "仿射变换" + ], + "keywords_forbid": [] } }, { "单应性变换": { "node_id": "opencv-39059ce222a240309afeb5b18dfe528e", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "单应性" + ], + "keywords_forbid": [] } }, { "图像特征与特征提取": { "node_id": "opencv-fde1c160abc94e49bb7811fa6b90b9a7", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "图像特征", + "特征提取" + ], + "keywords_forbid": [] } }, { "特征匹配": { "node_id": "opencv-47d476b32cc94ce48346eebaf03a61ae", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "特征匹配" + ], + "keywords_forbid": [] } } - ] + ], + "keywords_must": [], + "keywords_forbid": [] } }, { @@ -183,17 +267,28 @@ "人脸识别": { "node_id": "opencv-cc6f5f3a5c2d494c8574a55c8e43c237", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "人脸识别" + ], + "keywords_forbid": [] } }, { "鸟图识别": { "node_id": "opencv-c20cf8a094924526931da798e2642418", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "鸟类", + "鸟图" + ], + "keywords_forbid": [] } } - ] + ], + "keywords_must": [], + "keywords_forbid": [] } }, { @@ -205,17 +300,27 @@ "光流": { "node_id": "opencv-e7cb65bb329040e98c85d2888f18d8bb", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "光流" + ], + "keywords_forbid": [] } }, { "目标跟踪": { "node_id": "opencv-2959bd73f3894090b4a65be4fe8faff6", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "目标跟踪" + ], + "keywords_forbid": [] } } - ] + ], + "keywords_must": [], + "keywords_forbid": [] } }, { @@ -227,57 +332,87 @@ "图像分类": { "node_id": "opencv-a181ede3b8c7487fbcc212796c27ce77", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "图像分类" + ], + "keywords_forbid": [] } }, { "目标检测": { "node_id": "opencv-92964722395c4b9f989694211b07df44", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "目标检测" + ], + "keywords_forbid": [] } }, { "人脸检测": { "node_id": "opencv-a05295f5c1b94fdcaa370a45621cd5a5", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "人脸检测" + ], + "keywords_forbid": [] } }, { "姿态估计": { "node_id": "opencv-8bcc98575f3b4325b84fcb623916e3d2", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "姿态估计" + ], + "keywords_forbid": [] } }, { "车辆检测": { "node_id": "opencv-d3ca3567cef647b9bb960d7216361351", "keywords": [], - "children": [] + "children": [], + "keywords_must": [ + "车辆检测" + ], + "keywords_forbid": [] } } - ] + ], + "keywords_must": [], + "keywords_forbid": [] } } - ] + ], + "keywords_must": [], + "keywords_forbid": [] } }, { "OpenCV中阶": { "node_id": "opencv-e92c03e7b84c4c4ea7d23a2c32b88932", "keywords": [], - "children": [] + "children": [], + "keywords_must": [], + "keywords_forbid": [] } }, { "OpenCV高阶": { "node_id": "opencv-f27da6fd72924d1fbd05c6aff0fed4b7", "keywords": [], - "children": [] + "children": [], + "keywords_must": [], + "keywords_forbid": [] } } - ] + ], + "keywords_must": [], + "keywords_forbid": [] } } \ No newline at end of file diff --git a/src/tree.py b/src/tree.py index 3891238fd1b41faded6fb6daa63b6898d6bb7a02..99a69363bd3f9de50fd9f017b7164fde53bce8c8 100644 --- a/src/tree.py +++ b/src/tree.py @@ -109,7 +109,9 @@ class TreeWalker: root_node = { "node_id": root["node_id"], "keywords": root["keywords"], - "children": [] + "children": [], + "keywords_must": root["keywords_must"], + "keywords_forbid": root["keywords_forbid"] } self.tree[root["tree_name"]] = root_node self.load_levels(root_node) @@ -164,6 +166,8 @@ class TreeWalker: "node_id": config["node_id"], "keywords": config["keywords"], "children": [], + "keywords_must": config["keywords_must"], + "keywords_forbid": config["keywords_forbid"] } } @@ -215,6 +219,8 @@ class TreeWalker: "tree_name": self.name, "keywords": [], "node_id": self.gen_node_id(), + "keywords_must": [], + "keywords_forbid": [] } dump_json(config_path, config, exist_ok=True, override=True) else: @@ -244,7 +250,9 @@ class TreeWalker: if not os.path.exists(config_path): config = { "node_id": self.gen_node_id(), - "keywords": [] + "keywords": [], + "keywords_must": [], + "keywords_forbid": [] } dump_json(config_path, config, exist_ok=True, override=True) else: @@ -310,6 +318,8 @@ class TreeWalker: "node_id": config["node_id"], "keywords": config["keywords"], "children": [], + "keywords_must": config["keywords_must"], + "keywords_forbid": config["keywords_forbid"] } } return num, result @@ -321,7 +331,9 @@ class TreeWalker: name: { "node_id": config["node_id"], "keywords": config["keywords"], - "children": config.get("children", []) + "children": config.get("children", []), + "keywords_must": config["keywords_must"], + "keywords_forbid": config["keywords_forbid"] } } # if "children" in config: @@ -367,20 +379,18 @@ class TreeWalker: with open(meta_path) as f: content = f.read() if content: - try: - meta = json.loads(content) - if "exercise_id" not in meta: - meta["exercise_id"] = uuid.uuid4().hex - if "notebook_enable" not in meta: - meta["notebook_enable"] = self.default_notebook() - if "source" not in meta: - meta["source"] = source - if "author" not in meta: - meta["author"] = user_name(md_file, self.authors) - if "type" not in meta: - meta["type"] = "code_options" - except: - pass + meta = json.loads(content) + if "exercise_id" not in meta: + meta["exercise_id"] = uuid.uuid4().hex + if "notebook_enable" not in meta: + meta["notebook_enable"] = self.default_notebook() + if "source" not in meta: + meta["source"] = source + if "author" not in meta: + meta["author"] = user_name(md_file, self.authors) + if "type" not in meta: + meta["type"] = "code_options" + if meta is None: meta = { "type": "code_options",