bir*_*rdy 6 java opencv image-processing javacv
我正在使用新的OpenCV Java绑定来读取图像并对图像进行一些处理.我正在尝试使用Java绑定将C代码转换为Java,但似乎无法找到相关的方法:
C代码:
cv::Mat img = cv::imread(argv[1]);
cv::Mat gray;
cv::cvtColor(img, gray, CV_BGR2GRAY);
int erosion_size = 5;
cv::Mat element = cv::getStructuringElement(cv::MORPH_CROSS,
cv::Size(2 * erosion_size + 1, 2 * erosion_size + 1),
cv::Point(erosion_size, erosion_size) );
cv::erode(gray, gray, element);
Run Code Online (Sandbox Code Playgroud)
我找不到:
imreadcvtcolorgetStructuringElementerode我在这里看了看api:http://docs.opencv.org/java/
Dav*_*uel 20
要使用OpenCV for Java读取图像:
Mat img = Highgui.imread("path/to/img");
Run Code Online (Sandbox Code Playgroud)
Mat img = Imgcodecs.imread("path/to/img");
Run Code Online (Sandbox Code Playgroud)
在这两个版本中,您都可以传递第二个参数,指定如何加载图像:
CV_LOAD_IMAGE_ANYDEPTH:当输入具有相应的深度时返回16位/ 32位图像,否则将其转换为8位.CV_LOAD_IMAGE_COLOR:始终将图像转换为彩色图像.CV_LOAD_IMAGE_GRAYSCALE:始终将图像转换为灰度图像.例:
// OpenCV 2.x
Mat img = Highgui.imread("path/to/img", Highgui.CV_LOAD_IMAGE_GRAYSCALE);
// OpenCV 3.x
Mat img = Imgcodecs.imread("path/to/img", Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE);
Run Code Online (Sandbox Code Playgroud)
如果您已正确安装Opencv并支持Java桌面opencv-2.4.4.jar,则应导入:
import org.opencv.imgproc.Imgproc;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.highgui.Highgui;
Run Code Online (Sandbox Code Playgroud)
你的代码看起来像这样:
Mat img = Highgui.imread(argv[1], Highgui.CV_LOAD_IMAGE_GRAYSCALE);
int erosion_size = 5;
Mat element = Imgproc.getStructuringElement(
Imgproc.MORPH_CROSS, new Size(2 * erosion_size + 1, 2 * erosion_size + 1),
new Point(erosion_size, erosion_size)
);
Imgproc.erode(img, img, element);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19160 次 |
| 最近记录: |