Java opencv 识别颜色
时间: 2023-09-04 17:16:39 浏览: 167
使用OpenCV库可以实现颜色识别。下面是一个简单的Java代码示例,可以识别指定颜色(例如红色)在图像中的位置。
首先,需要导入OpenCV库,并读取图像文件:
```java
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Scalar;
import org.opencv.imgcodecs.Imgcodecs;
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat image = Imgcodecs.imread("image.jpg");
```
然后,定义颜色范围,使用 `inRange()` 函数将图像中的颜色限制在此范围内:
```java
Scalar lower = new Scalar(0, 0, 255); // 红色的下限
Scalar upper = new Scalar(0, 0, 255); // 红色的上限
Mat mask = new Mat();
Core.inRange(image, lower, upper, mask);
```
现在,可以使用 `findNonZero()` 函数查找符合条件的像素位置并输出:
```java
Mat nonZeroCoordinates = new Mat();
Core.findNonZero(mask, nonZeroCoordinates);
for (int i = 0; i < nonZeroCoordinates.rows(); i++) {
int x = (int)nonZeroCoordinates.get(i, 0)[0];
int y = (int)nonZeroCoordinates.get(i, 0)[1];
System.out.println("Found red pixel at (" + x + ", " + y + ")");
}
```
这段代码将输出在图像中所有符合条件的像素位置,即红色像素的位置。
当然,这只是一个简单的示例。如果需要更复杂的颜色识别,需要调整颜色范围、去除噪点等参数。
阅读全文