cv - Chuyển ảnh thành các hình dạng đường viền (:cv_to_shapes)
Khai báo
tập hợp hình dạng, ảnh trực quan = ảnh:cv_to_shapes([cấu hình khớp đường viền])
Tham số
-
cấu hình khớp đường viền
Kiểu bảng, không bắt buộcCác trường tùy chọn
{
should_visualize = false | true, -- không bắt buộc, có xuất ảnh trực quan hóa hay không, mặc định false
closed = false | true, -- không bắt buộc, hình dạng có khép kín hay không, mặc định false
blur_size = integer_value, -- không bắt buộc, kích thước nhân làm mờ, chỉ nhận số lẻ dương, mặc định 3
canny_threshold1 = 100, -- không bắt buộc, ngưỡng dưới Canny, mặc định 100
canny_threshold2 = 200, -- không bắt buộc, ngưỡng trên Canny, mặc định 200
approx_epsilon = integer_value, -- không bắt buộc, tỷ lệ phần trăm chu vi dùng để xấp xỉ đường viền, mặc định 2
}
Giá trị trả về
-
tập hợp hình dạng
Kiểu bảng. Danh sách các hình dạng trong ảnhCấu trúc hình dạng
{
{ -- hình dạng 1
{ -- đỉnh 1
["y"] = number_value,
["x"] = number_value,
},
{ -- đỉnh 2
["y"] = number_value,
["x"] = number_value,
},
...
},
{ -- hình dạng 2
{ -- đỉnh 1
["y"] = number_value,
["x"] = number_value,
},
{ -- đỉnh 2
["y"] = number_value,
["x"] = number_value,
},
...
},
...
} -
ảnh trực quan
Đối tượng ảnh. Khioptions.should_visualizelàtrue, đây là ảnh trực quan hóa
Mô tả
Chuyển các đường viền trong ảnh thành hình dạng (danh sách đỉnh)
Nên ưu tiên các hình dạng đơn giản, rõ ràng và khép kín để có kết quả tốt hơn
Ví dụ
local cv = require("image.cv")
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
local shapes, visimg = img:cv_to_shapes({
blur_size = 3,
approx_epsilon = 2, -- tỷ lệ chống nhiễu 0~100
closed = true,
should_visualize = true,
})
nLog(shapes)
dialog():add_image(visimg):show()