2015年11月13日金曜日

EclipseからFedora23へRSEでサーバにSSH接続できない

このエントリーをはてなブックマークに追加

いつもサーバへソースなどファイルをアップロードする時にはEclipseのRSE経由でSFTPで行っているのだが、今使っているFedora23へ同様にしようとすると下記のようなメッセージが出て接続できなかった。

"172.16.33.160:22" 上で sshd の接続に失敗しました
Session.connect: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)

その他のCentOS7などのサーバへは同様に接続できる。

クライアントの環境はこんな感じ。

OS:MacOS El Capitan
Java:1.7.0_67
Eclipse:Version: Mars.1 Release (4.5.1)、Build id 20150924-1200
RSE:3.7.0.201505221634

調べてみると「SunJCE の Diffie-Hellman アルゴリズムで 1024 ビットを超える素数が使えない」にJava8にアップデートしたらいけそうな感じだったのでしてみることに。

Java SDK8をダウンロードしてきてインストール。

インストールされたか今までのバージョンの確認をしてみる。
# java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
# /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    1.8.0_65, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home
    1.7.0_67, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home
    1.6.0_65-b14-468, x86_64: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home

Eclipseを再起動して、再度RSEで接続してみるといけた。

ちなみにJavaのバージョンを切り替える場合は下記のようにする。
# export JAVA_HOME=`/usr/libexec/java_home -v 1.7.0_67`
# java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
# export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_65`
# java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

2015年11月12日木曜日

OpenCV Tutorial(1)〜特定色のトラッキング

このエントリーをはてなブックマークに追加
OpenCVのサイトにオンラインドキュメントでチュートリアルがあったので、ざっと眺めてためそうと思う。使う言語はCではなくpythonにしてみる。(慣れてるし)

Image Processing in OpenCVから。

Changing Colorspaces

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while(1):

    # Take each frame
    _, frame = cap.read()

    # Convert BGR to HSV
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    # define range of blue color in HSV
    lower_blue = np.array([110,50,50])
    upper_blue = np.array([130,255,255])

    # Threshold the HSV image to get only blue colors
    mask = cv2.inRange(hsv, lower_blue, upper_blue)

    # Bitwise-AND mask and original image
    res = cv2.bitwise_and(frame,frame, mask= mask)

    cv2.imshow('frame',frame)
    cv2.imshow('mask',mask)
    cv2.imshow('res',res)
    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break

cv2.destroyAllWindows()

青色でマスクされた部分が動画でトラッキングされながらグレースケールと青のみでマスクされて表示された。


今日の作業

Bloggerのデザイン微修正とOpenCVのチュートリアル見つけて1つのみ。残念。あと、ソースにコメントを付けて補足したい。

2015年11月11日水曜日

画像の特徴点を抽出する

このエントリーをはてなブックマークに追加
せっかく入れたOpenCVなので何かやってみたい。

といってもパッと難しいことはできないので、よくある画像の特徴点抽出をやってみようかと思った。
import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('/usr/local/src/opencv-3.0.0/samples/data/lena.jpg',0)

# Initiate STAR detector
orb = cv2.ORB_create()

# find the keypoints with ORB
kp = orb.detect(img,None)

# compute the descriptors with ORB
kp, des = orb.compute(img, kp)

# draw only keypoints location,not size and orientation
img2 = cv2.drawKeypoints(img,kp, None,color=(0,255,0))
plt.imshow(img2),plt.show()

出来た。

今日の作業

OpenCVのインストールが手強すぎて、あまり他のことに時間が割けなかった。とはいえ、OpenCV入れたので何ができるかの基本は押さえておきたい。明日は少し進展できたらいいな。