Mat(строка, колонка, тип)
о типе
в OpenCV существует множество различных типов для Mat, среди которых есть метод type(), который возвращает тип данной матрицы.
Тип указывает на тип данных элементов матрицы и количество каналов,
это набор заранее определённых констант,
названия которых следуют правилу CV_(битность)+(тип данных)+(количество каналов). Конкретные значения представлены ниже
битность: 8
тип данных:
имя | описание |
---|---|
U | беззнаковое целое число |
S | со знаком целое число |
f | число с плавающей запятой |
количество каналов C1 (или пустое) C2 C3 C(n)
имя | описание |
---|---|
C1 | один канал |
C2 | два канала |
C3 | три канала |
C(n) | n каналов |
Обработка шума в OpenCV включает:
public class ImageZaoSheng {
/**
* Средняя фильтрация
*/
@Test
public void blur() {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// Загрузка в оттенках серого
Mat src = Imgcodecs.imread("/Users/hecj/Desktop/car/erzhi.jpeg");
Mat dst = src.clone();
Imgproc.blur(src, dst, new Size(9, 9), new Point(-1, -1), Core.BORDER_DEFAULT);
Imgcodecs.imwrite("/Users/hecj/Desktop/car/erzhi_1.jpeg", dst);
}
/**
* Гауссовская фильтрация
*/
@Test
public void GaussianBlur() {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// Загрузка в оттенках серого
Mat src = Imgcodecs.imread("/Users/hecj/Desktop/car/erzhi.jpeg");
Mat dst = src.clone();
Imgproc.GaussianBlur(src, dst, new Size(9, 9), 0, 0, Core.BORDER_DEFAULT);
Imgcodecs.imwrite("/Users/hecj/Desktop/car/erzhi_2.jpeg", dst);
}
``````markdown
## 3. Определение круглых объектов
```java
{
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat src = Imgcodecs.imread("F:\\websbook_com_1589226.jpg");
Mat dst = src.clone();
Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2GRAY);
Mat circles = new Mat();
Imgproc.HoughCircles(dst, circles, Imgproc.HOUGH_GRADIENT, 1, 100, 440, 50, 0, 345);
// Imgproc.HoughCircles(dst, circles, Imgproc.HOUGH_GRADIENT, 1, 100)
}
Метод HoughCircles
используется для обнаружения круглых объектов на изображении. Он принимает следующие параметры:
image
: Исходное изображение в оттенках серого.circles
: Матрица, которая будет содержать координаты центров найденных кругов и их радиусы.method
: Метод обнаружения кругов (Imgproc.HOUGH_GRADIENT
).dp
: Уровень детализации (коэффициент отношения размера окон высоты и ширины).minDist
: Минимальное расстояние между центрами найденных кругов.param1
: Параметр метода Hough (threshold
для обнаружения границ).param2
: Параметр метода Hough (`累加部分与上述指令无关,因此无需翻译。以下是根据给定的规则进行修改后的文本:## 3. Определение круглых объектов
```java
{
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat src = Imgcodecs.imread("F:\\websbook_com_1589226.jpg");
Mat dst = src.clone();
Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2GRAY);
Mat circles = new Mat();
Imgproc.HoughCircles(dst, circles, Imgproc.HOUGH_GRADIENT, 1, 100, 440, 50, 0, 345);
// Imgproc.HoughCircles(dst, circles, Imgproc.HOUGH_GRADIENT, 1, 100)
}
Метод HoughCircles
используется для обнаружения круглых объектов на изображении. Он принимает следующие параметры:
image
: Исходное изображение в оттенках серого.circles
: Матрица, которая будет содержать координаты центров найденных кругов и их радиусы.method
: Метод обнаружения кругов (Imgproc.HOUGH_GRADIENT
).dp
: Уровень детализации (коэффициент отношения размера окон высоты и ширины).minDist
: Минимальное расстояние между центрами найденных кругов.param1
: Параметр метода Hough (threshold
для обнаружения границ).param2
: Параметр метода Hough (cannyThreshold
для обнаружения границ).minRadius
: Минимальный радиус круга.maxRadius
: Максимальный радиус круга.```**изображение**: Исходное изображение
**круги**: Вектор выходных данных с координатами центра круга (x, y) и радиусом r
**метод**: Используемый метод обнаружения, в данном случае Imgproc.HOUGH_GRADIENT
**dp**: Обратное отношение между размером аккумулирующего изображения и исходного изображения
**minDist**: Минимальное расстояние между центрами обнаруженных окружностей
**param1**: Параметр, связанный с выбранным методом обнаружения. Для HOUGH_GRADIENT это верхний порог детектора границ. По умолчанию равно 100
**param2**: Параметр, связанный с выбранным методом обнаружения. Для HOUGH_GRADIENT это пороговое значение аккумулятора. Чем меньше значение, тем больше незначительных окружностей будет обнаружено
**minRadius**: Минимальный радиус окружности
**maxRadius**: Максимальный радиус окружности (если minRadius и maxRadius равны 0, то HoughCircles автоматически вычисляет радиус)
```markdown
## Тип линий lineType в OpenCV
Существует три значения: LINE_8 (по умолчанию), LINE_4 и LINE_AA.
```Производительность: LINE_8 > LINE_AA
Качество отображения: LINE_AA > LINE_8
## Обнаружение прямых линий
```python
Imgproc.HoughLines(image, lines, rho, theta, threshold, srn, stn, min_theta, max_theta)
Параметры:
image
: Исходное изображениеlines
: Вектор выходных данных после применения преобразования Хафа для хранения найденных линийrho
: Точность расстояния в пикселяхtheta
: Точность угла в радианахthreshold
: Минимальное значение порога для признания части изображения как прямой линииsrn
: Делитель для параметра rho, имеет значение по умолчанию 0stn
: Делитель для параметра theta, имеет значение по умолчанию 0min_theta
: Минимальный угол найденной линииmax_theta
: Максимальный угол найденной линииАккумулированное вероятностное преобразование Хафа:
Imgproc.HoughLinesP(image, lines, rho, theta, threshold, min_line_length, max_line_gap)
Параметры:
image
: Исходное изображениеlines
: Вектор выходных данных после применения преобразования Хафа для хранения найденных линийrho
: Точность расстояния в пикселяхtheta
: Точность угла в радианахthreshold
: Минимальное значение порога для признания части изображения как прямой линииmin_line_length
: Минимальная длина сегмента линии, значение по умолчанию 0max_line_gap
: Максимальное допустимое расстояние между точками одной линии, чтобы считать их частью одной и той же линии, значение по умолчанию 0Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )