我目前正在尝试检测是否已使用HoughLinesin在图像上部署了平交道口屏障OpenCV.我以为我的代码会在我的图像上画一条线,只要屏障出现在其中 - 但我得到一条错误消息"Mat数据类型不兼容".可以告诉我如何使用OpenCV检测Java中的行吗?
public class DetectLines {
public static void main(String args[]) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat eventless = Highgui.imread("files/eventless.png");
Mat barrier = Highgui.imread("files/barrier/lc-00201.png");
Mat difference = new Mat();
Mat lines = new Mat();
Core.absdiff(eventless, barrier, difference);
Mat grey = new Mat();
Imgproc.cvtColor(difference, grey, Imgproc.COLOR_BGR2GRAY);
Imgproc.HoughLines(grey, lines, 5.0, 4.0, 7);
Imshow ims1 = new Imshow("Lines");
ims1.showImage(lines);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的32位笔记本电脑上设置OpenCV,但我一直收到一条令我困惑的错误信息:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java249 in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at hello.main(hello.java:8)
Run Code Online (Sandbox Code Playgroud)
我尝试过切换一些东西,比如进入用户库并将原生库位置更改为\ x64而不是\ x86,但这没有用.我还确保我的Java项目将OpenCV-2.4.9作为其库之一.我也试过'清理'所有项目,但这没有用(它曾经有过吗?).所以我已经按照设置教程中的所有说明进行操作,但它仍然无效.
有谁知道问题可能在这里?提前致谢...
这可能是一个有点笨拙的问题-但我想找到两个坐标为(x1,y1)和(x2,y2)的像素之间的距离。用MatLab做到这一点的最简单方法是什么?
import java.util.ArrayList;
public class FriendList {
private ArrayList<String> friendList;
public FriendList() {
ArrayList<String> friendList = new ArrayList<String>();
}
public void addFriend(String friend) {
friendList.add(friend);
}
public String getFriends() {
return friendList.toString();
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过一些东西,但似乎无法设法将字符串添加到数组列表中.任何想法为什么会这样?
这是代码.当我运行它时,length的newDeck是0,那么很显然,没有Cards被添加到它...
function Card(number, suit) {
this.number = number;
this.suit = suit;
}
var deck = [];
function Deck() {
for (i=2; i>13; i++) {
for (j=1; j>4; j++) {
var newCard = new Card(i,j);
deck.push(newCard);
}
}
return deck
}
var newDeck = new Deck();
console.log(newDeck.length);
Run Code Online (Sandbox Code Playgroud)