java - 如何将这段代码转换成javacv?

标签 java opencv image-processing

我已经阅读了许多教程和指南,并且能够转换其中的一部分。但我不知道如何将最后一行转换为 javacv。那么请有人帮我把这段代码转换成 javacv 吗?

img = cv2.imread('sofud.jpg')

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

ret,thresh = cv2.threshold(gray,127,255,1)

contours,hierarchy = cv2.findContours(thresh,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)

  for cnt in contours:
    x,y,w,h = cv2.boundingRect(cnt)
    if 10 < w/float(h) or w/float(h) < 0.1:
    cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)

最佳答案

您可以在 Java CV 中使用最后一行:

opencv_core.cvRectangle(image, opencv_core.cvPoint(m,n), opencv_core.cvPoint(i,j), opencv_core.cvScalar(0,0,255,0), thickness, 8, 0);

参数的含义:

opencv_core.cvRectangle(CvArr* img, CvPoint , CvPoint, CvScalar color, int thickness=1, int lineType=8, int shift=0)

看看这个Link获取更多信息。

编辑:

这是一个寻找轮廓的例子:

cvFindContours(grayImage, memory, contours, sizeof(CvContour.class) , CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0));

参数的含义:

cvFindContours(CvArr* image, CvMemStorage* storage, CvSeq** first_contour, int header_size=sizeof(CvContour), int mode=CV_RETR_LIST, int method=CV_CHAIN_APPROX_SIMPLE, CvPoint offset=cvPoint(0,0) )

有关参数的更多信息,请查看此 Link ,在 FindContours 部分下。

您还可以使用 cvDrawContours 函数,以与我们使用 cvFindContours 函数相同的方式绘制等高线。

看看这个Link .这是本网站上的另一篇文章,他们在其中解释了在 Blob 检测中寻找轮廓的用途。

希望对您有所帮助。

关于java - 如何将这段代码转换成javacv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11371729/

相关文章:

c++ - 如何将单个图像从图像 vector 复制到临时 cv::Mat?

Python:检测和参数化图像矩阵中的简单矩形/高斯条纹图案

python - 如何将不是黑色的每个像素转换为某种颜色?

.net - 在大图片中查找小图片的快速算法?

java - ImageView.setImageBitmap 始终为 null

java - TextView 方法 setText() 在方法 onClick() 中不起作用

opencv - 检索圆点

python - 在python中检测图像中的彩色点?

java - 更改 Google Place Picker Appbar 文本颜色

java - 如何使用非法索引访问数组