- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了带有阈值的二进制图像。如下图所示如何改变白色形状的颜色以使其可索引?
到目前为止,这是我的代码:
void threshold()
{
cv::Mat src_8uc3_img = cv::imread("images/train.png", CV_LOAD_IMAGE_GRAYSCALE); // load color image from file system to Mat variable, this will be loaded using 8 bits (uchar)
if (src_8uc3_img.empty()) {
printf("Unable to read input file (%s, %d).", __FILE__, __LINE__);
}
double thresh = 0;
double maxValue = 255;
cv::Mat thresh_holding = src_8uc3_img.clone();
cv::Mat indexing = src_8uc3_img.clone();
cv::imshow("Train", src_8uc3_img);
for (int y = 0; y < thresh_holding.rows ; y++) {
for (int x = 0; x < thresh_holding.cols ; x++) {
uchar thX = thresh_holding.at(y, x);
if (thX < 128 ) {
thresh_holding.at(y, x) = thresh;
}
else if (thX>128){
thresh_holding.at(y, x) = maxValue;
}
}
}
cv::imshow("ThreshHolding", thresh_holding);
cv::waitKey(0); // wait until keypressed
}
1 Câu trả lời
首先,它是“阈值”,而不是“阈值保持”。这意味着设置/应用阈值,而不意味着保持阈值。
您想要的显然是找到图像的connected components。除非您想学习基本的图像处理,否则首先要使用 threshold()
函数。然后不要使用findContours()
/ drawContours()
,因为它们很慢。如果要使用不同的连接组件,请使用 connectedComponents()
:速度很快,并且每个组件都有一个不同的标签。根据索引,颜色取决于您。
受Alex Alex Python答案的启发,您可以在此处找到C++版本:
#include
int main(void)
{
using namespace cv;
// Read image
Mat1b img = imread("input.png", IMREAD_GRAYSCALE);
// Make sure it's binary
threshold(img, img, 128, 255, THRESH_BINARY);
// Extract connected components
Mat1i labels;
int nlabels = connectedComponents(img, labels);
// Make the connected components from 0 to 255 (assume less than 256 labels)
img = labels * 255 / nlabels;
// Make the labels colored
Mat3b colored, output;
applyColorMap(img, colored, COLORMAP_JET);
// Mask background with zeros in original image
colored.copyTo(output, img);
// Write output
imwrite("output.png", output);
}
hình ảnh
的分配也转换为8 bpp。输入的
Mat
更好用。
关于c++ - 如何为二进制图像中的形状重新着色以进行索引(填充)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61501775/
Tôi đã làm việc chăm chỉ trong những ngày này. Tôi đang tự học CSS nên hãy tử tế với những người mới bắt đầu. Tôi đang tạo một thanh trượt lời chứng thực. Nên hiển thị thành 3 khối. Tôi muốn 2 cái đầu tiên đi xuống và cái thứ 3 đi lên. Nhưng khi thanh trượt được kích hoạt, không có
Tôi mới bắt đầu học Nodejs và hiện tại tôi đang bối rối không biết nên dùng Nodejs nào cho ứng dụng web của mình, html hay ejs (Express). Ejs sử dụng mô-đun Express, trong khi .html sử dụng mô-đun HTML. Câu hỏi đầu tiên của tôi
Giả sử chúng ta có bảng danh bạ PostgreSQL và mỗi bản ghi có một loạt địa chỉ email được gắn thẻ (cặp thẻ và email) - một trong số đó là "chính". Lưu trữ như sau: id khóa chính email văn bản email_la
Tôi đã viết thành công tệptraineddata cho một ngôn ngữ tesseract mới, nhưng khi hoàn thành, tôi vẫn nhận được lỗi sau: index >= 0 && index = 0 && index < size_used_ :E
Câu hỏi này đã có câu trả lời: Cách xử lý SettingWithCopyWarning trong Pandas (21 câu trả lời) Đã đóng 4 năm trước. Giả sử tôi có một khung dữ liệu như thế này, với cột đầu tiên là "mật độ
Nếu tôi có một vị trí hoặc hàng/cột cho cả vị trí A và B, hãy kiểm tra xem B có chéo với A không? 1 2 3 4 5 6 7 8 9 Ví dụ, làm sao để kiểm tra xem 5 có chéo với 7 không? Hơn nữa, nếu tôi kiểm tra 4 là
MongoDB: Chỉ mục 1. Tạo chỉ mục Theo mặc định, trường _id trong bộ sưu tập là chỉ mục. Chúng ta có thể sử dụng phương thức getIndexes() để xem chỉ mục trong bộ sưu tập> db.user.getIndexes() [ { "v
1. Giới thiệu về Chỉ mục Chỉ mục là một cấu trúc dữ liệu được sử dụng để truy vấn dữ liệu nhanh chóng. B+Tree là cấu trúc dữ liệu chỉ mục cơ sở dữ liệu thường được sử dụng. MongoDB sử dụng B+Tree để lập chỉ mục và chỉ mục được tạo trên các đối chiếu. MongoDB không sử dụng chỉ mục
Tôi không thể quyết định được chỉ số. Giống như tôi có truy vấn sau đây mất quá nhiều thời gian để thực thi: select count(rn.NODE_ID) as Count, rnl.[ISO_COUNTRY_CODE] as Cou
Tôi có các bảng này: CREATE TABLE `cstat` ( `id_cstat` bigint(20) NOT NULL, `lang_code` varchar(3) NOT NULL,
Tôi đang cố tìm cách cải thiện hiệu suất của bảng mysql chứa các dải IP (vào thời điểm cao điểm có tới 500 truy vấn SELECT mỗi giây(!) nên tôi hơi lo lắng). Tôi có một bảng có cấu trúc như sau: id smallint(
Có vẻ như jquery index() không thể nhận dạng được một trong các phần tử, luôn trả lời "Không thể đọc thuộc tính 'length' của undefined" Đây là mã của tôi. mnumber chính là nguyên nhân gây ra vấn đề. Tôi cần number và mnumber để theo dõi việc sử dụng chuột và
Chúng tôi có bộ sưu tập MongoDB chứa gần 40 triệu bản ghi. Kích thước hiện tại của bộ sưu tập là 5GB. Dữ liệu được lưu trữ trong bộ sưu tập này chứa các trường sau: _id: "Id MongoDB" userid: "ID người dùng" (i
Tài liệu nêu rõ: Nếu bạn có chỉ mục tổng hợp trên nhiều trường, bạn có thể sử dụng chỉ mục này để truy vấn tập hợp con bắt đầu của các trường. Vì vậy, nếu bạn có chỉ mục A, B, C, bạn có thể sử dụng nó để truy vấn a, b, c. Câu hỏi của tôi là nếu tôi có chỉ mục tổng hợp như thế này A, B, C, tôi có thể truy vấn không?
Tôi đang sử dụng $('#list option').each(function(){ //do stuff }); để lặp qua các tùy chọn trong danh sách. Tôi muốn biết làm thế nào để lấy được chỉ mục của vòng lặp hiện tại? Bởi vì tôi không muốn var i = 0; lặp lại
Việc thiết lập chỉ mục MySQL rất quan trọng đối với hoạt động hiệu quả của MySQL. Chỉ mục có thể cải thiện đáng kể tốc độ truy xuất của MySQL. Nói theo cách ẩn dụ, nếu MySQL được thiết kế và lập chỉ mục đúng cách là một chiếc Lamborghini, thì MySQL không có chỉ mục là một chiếc
Chỉ mục SQLite Chỉ mục là bảng tra cứu đặc biệt mà công cụ tìm kiếm cơ sở dữ liệu sử dụng để tăng tốc độ truy xuất dữ liệu. Nói một cách đơn giản, chỉ mục là con trỏ tới dữ liệu trong bảng. Mục lục trong cơ sở dữ liệu rất giống với mục lục ở cuối sách.
Tôi mới biết đến RavenDB. Tôi đang cố gắng sử dụng tính năng lập chỉ mục nhiều bản đồ nhưng không chắc đây có phải là cách tốt nhất để giải quyết vấn đề của mình hay không. Vì vậy, tôi có ba tập tin: Đơn vị, Xe hơi, Con người. Tệp tin xe trông như thế này: { Id: "
Tôi có dữ liệu sau và tôi muốn lập chỉ mục trong một bảng khác dựa trên các phạm vi. Ví dụ, tôi muốn đạt được mục tiêu là nếu doanh số của Samsung là 2500, thì mức chiết khấu là 2% cho sản phẩm dưới 3000 và trên 1000. Tôi biết điều này có thể thực hiện được bằng cách lập chỉ mục, khớp với nhiều mảng rồi trỏ tới
Tôi đang trong quá trình kiểm tra và loại bỏ các chỉ mục trùng lặp và dư thừa trong cơ sở dữ liệu SQL. Vì vậy, nếu tôi có hai chỉ mục giống nhau, tôi sẽ xóa. Ví dụ, nếu tôi xóa các chỉ mục chồng chéo... Chỉ mục 1: Thương hiệu, Kiểu máy Chỉ mục 2: Thương hiệu, Kiểu máy, Giá Tôi xóa chỉ mục 1. Cùng một thứ tự
Tôi là một lập trình viên xuất sắc, rất giỏi!