提交 347105ad 编写于 作者: F feilong

init opencv dir

上级 c33f30c9
......@@ -9,17 +9,17 @@
* 位置:`data/config.json`
* 说明:可编辑配置关键词等字段,其中 `node_id` 字段是生成的,请勿编辑
* 技能树`难度节点`
* 位置:`data/xxx`,例如: `data/1.Java初阶`
* 位置:`data/xxx`,例如: `data/1.OpenCV初阶`
* 说明:
* 每个技能树有 3 个等级,目录前的序号是必要的,用来保持文件夹目录的顺序
* 每个目录下有一个 `config.json` 可配置关键词信息,其中 `node_id` 字段是生成的,请勿编辑
* 技能树`章节点`
* 位置:`data/xxx/xxx`,例如:`data/1.Java初阶/1.Java概述`
* 位置:`data/xxx/xxx`,例如:`data/1.OpenCV初阶/1.OpenCV基础`
* 说明:
* 每个技能树的每个难度等级有 n 个章节,目录前的序号是必要的,用来保持文件夹目录的顺序
* 每个目录下有一个 `config.json` 可配置关键词信息,其中 `node_id` 字段是生成的,请勿编辑
* 技能树`知识节点`
* 位置:`data/xxx/xxx/xxx`,例如:`data/1.Java初阶/1.Java概述/1.什么是Java`
* 位置:`data/xxx/xxx/xxx`,例如:`data/1.OpenCV初阶/1.OpenCV基础/1.OpenCV简介`
* 说明:
* 每个技能树的每章有 `n` 个知识节点,目录前的序号是必要的,用来保持文件夹目录的顺序
* 每个目录下有一个 `config.json`
......@@ -31,7 +31,7 @@
## `知识节点` 子树信息结构
例如 `data/1.Java初阶/1.Java概述/1.什么是Java/config.json` 里配置对该知识节点子树信息结构:
例如 `data/1.OpenCV初阶/1.OpenCV基础/1.OpenCV简介/config.json` 里配置对该知识节点子树信息结构:
```json
{
// ...
......@@ -46,13 +46,13 @@
## `知识节点` 的导出习题编辑
例如 `data/1.Java初阶/1.Java概述/1.什么是Java/config.json` 里配置对该知识节点导出的习题
例如 `data/1.OpenCV初阶/1.OpenCV基础/1.OpenCV简介/config.json` 里配置对该知识节点导出的习题
```json
{
// ...
"export": [
"HellowWorld.json"
"helloworld.json"
]
}
```
......@@ -63,73 +63,99 @@
目前我们支持使用 markdown 语法直接编辑习题和各选项。
如前文内容,我们在知识节点下增加习题 `HelloWord`的定义文件,即在`data/1.Java初阶/1.Java概述/1.什么是Java` 目录增加一个`HelloWorld.json`文件:
如前文内容,我们在知识节点下增加习题 `helloworld`的定义文件,即在`data/1.OpenCV初阶/1.OpenCV基础/1.OpenCV简介` 目录增加一个`helloworld.json`文件:
```json
{
"type": "code_options",
"author": "刘鑫",
"source": "HelloWorld.md",
"author": "幻灰龙",
"source": "helloworld.md",
"notebook_enable": true
}
```
其中 type 字段目前都固定是 `code_options`notebook_enable 字段决定这个习题是否生成对应的 notebook 。根据具体情况写好其它字段,注意这里 source 的文件名,我们指定了一个 markdwon 文件。现在我们新建一个 HelloWorld.md 并编辑为:
其中 type 字段目前都固定是 `code_options``notebook_enable` 字段决定这个习题是否生成对应的 `notebook` 。根据具体情况写好其它字段,注意这里 `source` 的文件名,我们指定了一个 markdwon 文件。现在我们新建一个 `helloworld.md` 并编辑为:
````markdown
# Hello World
以下 `Hello World` 程序中,能够正确输出内容的是:
以下 `Hello World` 程序中,能够正确执行下述操作的是?
1. 读取目录下`lena`图片
2. 显示`lena`图像窗口
3. 等待用户输入任意按键后关闭窗口
## 答案
```java
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
public class App {
public static void main(String[] args){
System.out.println("Hello World");
}
int main() {
Mat img = imread("lena.png");
imshow("lena", img);
waitKey(0);
destroyAllWindows();
return 0;
}
```
## 选项
### 不必要的返回值
### 没有显示图像
```java
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
public class App {
public int main(){
System.out.printf("Hello World");
return 0;
}
int main() {
Mat img = imread("lena.png");
waitKey(0);
destroyAllWindows();
return 0;
}
```
### 没有引用 System.out
### imshow参数顺序错误
```java
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
public class App {
public static void main(String[] args){
println("Hello World");
}
int main() {
Mat img = imread("lena.png");
imshow(img, "lena");
waitKey(0);
destroyAllWindows();
return 0;
}
```
### 混合了 c 代码
### 忘记销毁窗口
```java
import stdout
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
public class App {
public int main(){
print("Hello World\n");
return 0;
}
int main() {
Mat img = imread("lena.png");
imshow("lena", img);
waitKey(0);
return 0;
}
```
### 没有等待用户输入按键
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat img = imread("lena.png");
imshow("lena", img);
destroyAllWindows();
return 0;
}
```
````
这是一个最基本的习题结构,它包含标题、答案、选项,注意这几个一级和二级标题必须填写正确,解释器会读取这几个标题。而选项的标题会被直接忽略掉,在
......
{
"keywords": [
"什么是OpenCV"
],
"children": [
{
"OpenCV的起源": {
"keywords": [
"OpenCV的起源"
],
"children": [],
"node_id": "opencv-626bf6e70ba04d18b1147571c08d85bc",
"title": "OpenCV的起源"
}
}
],
"export": [
"helloworld.json"
],
"node_id": "opencv-77f629e4593845b0bf97e74ca8ec95ae",
"title": "OpenCV简介"
}
\ No newline at end of file
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat img = imread("lena.png");
imshow("lena", img);
waitKey(0);
destroyAllWindows();
return 0;
}
\ No newline at end of file
{
"type": "code_options",
"author": "幻灰龙",
"source": "helloworld.md",
"notebook_enable": true,
"exercise_id": "23ad9cfa3e8847b6aedba72882b65a74"
}
\ No newline at end of file
# Hello World
以下 `Hello World` 程序中,能够正确执行下述操作的是?
1. 读取目录下`lena`图片
2. 显示`lena`图像窗口
3. 等待用户输入任意按键后关闭窗口
## 答案
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat img = imread("lena.png");
imshow("lena", img);
waitKey(0);
destroyAllWindows();
return 0;
}
```
## 选项
### 没有显示图像
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat img = imread("lena.png");
waitKey(0);
destroyAllWindows();
return 0;
}
```
### imshow参数顺序错误
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat img = imread("lena.png");
imshow(img, "lena");
waitKey(0);
destroyAllWindows();
return 0;
}
```
### 忘记销毁窗口
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat img = imread("lena.png");
imshow("lena", img);
waitKey(0);
return 0;
}
```
### 没有等待用户输入按键
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat img = imread("lena.png");
imshow("lena", img);
destroyAllWindows();
return 0;
}
```
\ No newline at end of file
{
"keywords": [],
"children": [],
"export": [],
"node_id": "opencv-662dbd65c89d4ddb9e392f44ffe16e1a",
"title": "OpenCV安装"
}
\ No newline at end of file
{
"keywords": [],
"node_id": "opencv-f7ecf411195447b3897ff2324f7aa11b",
"title": "OpenCV基础"
}
\ No newline at end of file
{
"export": [],
"keywords": [],
"node_id": "opencv-f27da6fd72924d1fbd05c6aff0fed4b7",
"title": "OpenCV高阶"
......
......@@ -7,7 +7,43 @@
"OpenCV初阶": {
"node_id": "opencv-b943de85e3ad494885f0b4b529053c5a",
"keywords": [],
"children": []
"children": [
{
"OpenCV基础": {
"node_id": "opencv-f7ecf411195447b3897ff2324f7aa11b",
"keywords": [],
"children": [
{
"OpenCV简介": {
"node_id": "opencv-77f629e4593845b0bf97e74ca8ec95ae",
"keywords": [
"什么是OpenCV"
],
"children": [
{
"OpenCV的起源": {
"keywords": [
"OpenCV的起源"
],
"children": [],
"node_id": "opencv-626bf6e70ba04d18b1147571c08d85bc",
"title": "OpenCV的起源"
}
}
]
}
},
{
"OpenCV安装": {
"node_id": "opencv-662dbd65c89d4ddb9e392f44ffe16e1a",
"keywords": [],
"children": []
}
}
]
}
}
]
}
},
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册