約 677,034 件
https://w.atwiki.jp/hogazurou/pages/28.html
4-16 #ifdef _WIN32 #include windows.h #endif #ifndef _USE_MATH_DEFINES #define _USE_MATH_DEFINES #endif #include math.h #include GL/gl.h #include "glut.h" //-----------------------イベント関数------------------------ void display(){//描画処理 glClearColor(1.0, 1.0, 1.0, 0.0);//初期画面は白色 glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );//画面の消去 glColor3f(0.0, 0.0, 0.0);//描画色の設定(黒) //座標軸を線で描画 glBegin(GL_LINES); glVertex2d(-10.0, 0.0);//1本目 glVertex2d( 10.0, 0.0);//1本目 glVertex2d( 0.0, -10.0);//2本目 glVertex2d( 0.0, 10.0);//2本目 glEnd(); glutSwapBuffers();//描画バッファを切り替え glPointSize(2); //点の大きさを設定 //座標(-5,1), (3,3), (3,-6)に点を描画 glBegin(GL_POINTS); glVertex2d( -5.0, 1.0); glVertex2d( 3.0, 3.0); glVertex2d( 3.0, -6.0); glEnd(); //原点からの距離が5、x軸との角度が30度の位置に点を描画 double t=30.0*M_PI/180.0; double x=5.0*cos(t); double y=5.0*sin(t); glBegin(GL_POINTS);//点を描画 glVertex2d( x, y); glEnd(); //上の点をさらに45度回転させた位置に点を描画 t=30.0*M_PI/180.0; x=5.0*cos(t); y=5.0*sin(t); double ang1=30.0*M_PI/180.0; double x1=x*cos(ang1) - y*sin(ang1); double y1=x*sin(ang1) + y*cos(ang1); glBegin(GL_POINTS);//点を描画 glVertex2d( x, y); glVertex2d( x1, y1); glEnd(); //半径2の円の描画 glBegin(GL_POINTS); for(double k=1.0; k 360.0; k+=10.0){//角度は10度ずつ増やす t=k*M_PI/180.0; x=2.0*cos(t); y=2.0*sin(t); glVertex2d( x, y); } glEnd(); //極座標(1+cost, t) t=0~2πが表す図形の描画 glBegin(GL_POINTS); for(double k=1.0; k 360.0; k+=1.0){//角度は10度ずつ増やす t=k*M_PI/180.0; x=t; y=1.0*cos(t)+1; glVertex2d( x, y); } //glVertex2d( x1, y1); glEnd(); glutSwapBuffers();//描画バッファを切り替え } void initialize(){ //初期化処理 } void idle(){//アイドリング処理 } void reshape( int width, int height ){//リサイズ処理 glViewport( 0, 0, width, height ); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); gluOrtho2D( -10.0, 10.0, -10.0, 10.0 );//画面へ投影する座標系範囲 glMatrixMode( GL_MODELVIEW ); glLoadIdentity(); } //------------------------メイン関数------------------------ int main( int argc, char **argv ){ glutInit( argc, argv ); glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH ); glutInitWindowSize( 500, 500 ); //ウィンドウの初期サイズを設定 glutCreateWindow( argv[0] ); //ウィンドウのタイトルバーに表示される名前を設定 glutReshapeFunc( reshape ); glutDisplayFunc( display ); glutIdleFunc( idle ); initialize(); glutMainLoop(); return 0; }
https://w.atwiki.jp/sevenlives/pages/275.html
ImageMagick? Imlib? gdk-pixbuf? Photoshop トリミング? リサイズ サムネイル カリグラフィ? ペジェ曲線? トレース? ラスタライズ? モノクロ? グレースケール? グラデーション? グロー? ディザ法 エイリアシング? モアレ? Exif マジック・バイト? ダブル・バッファリング? バウンディング・ボックス アニメーション ステガノグラフィー? ■ 画像形式? ドロー? ビットマップ? GIF? JPEG PNGPNG-8? PNG-24? BMP ベクター?SVG VML? PGML? ■ カラー 並置加法混色? RGB RGBA? HSL? HSV? HEX値? 減法混色?CMY? ■ モニタ? 解像度 VRAM? アスペクト比 コントラスト比? ■ CG 3DCG アルファ・ブレンディング
https://w.atwiki.jp/cplusplus/pages/27.html
UVC LinuxのUVCドライバ rev.263
https://w.atwiki.jp/javadsge/pages/81.html
package imp2; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.stage.Stage; import javafx.scene.Group; import javafx.scene.shape.*; import static javafx.application.Application.launch; import javafx.scene.paint.Color; import javafx.scene.input.MouseEvent; import javafx.scene.control.Label; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.canvas.Canvas; import javafx.scene.image.PixelReader; import javafx.scene.canvas.GraphicsContext; public class pro extends Application { Canvas cam; GraphicsContext gc; int[][] mr=new int[500][500]; int[][] mg=new int[500][500]; int[][] mb=new int[500][500]; int px,py; public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { px=0; py=0; Image im = new Image("file pic/1.jpg"); ImageView imageView = new ImageView(); imageView.setImage(im); PixelReader reader = im.getPixelReader(); int mx,nx; for(mx=0;mx 500;mx++){ for(nx=0;nx 500;nx++){ Color col = reader.getColor(nx, mx); mr[mx][nx] =(int)(255*col.getRed()); mg[mx][nx] = (int)(255*col.getGreen()); mb[mx][nx] = (int)(255*col.getBlue()); } } cam = new Canvas(500,500); gc = cam.getGraphicsContext2D(); for(mx=0;mx 500;mx++){ for(nx=0;nx 500;nx++){ Color c = Color.rgb(mr[mx][nx],mg[mx][nx],mb[mx][nx]); gc.setFill(c); gc.fillRect(nx,mx,1,1); } } cam.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler MouseEvent () { @Override public void handle(MouseEvent e) { px=(int)e.getX(); py=(int)e.getY(); Color c2 = Color.rgb(mr[py][px],mg[py][px],mb[py][px]); gc.setFill(c2); gc.fillRect(px,py,100,100); } }); Group root = new Group(); Scene scene = new Scene(root, 700, 700); root.getChildren().add(cam); primaryStage.setTitle("侵略者"); primaryStage.setScene(scene); primaryStage.show(); } }
https://w.atwiki.jp/chugoku/pages/63.html
1、正確 2、だいたい 言い方を変えると 1、計測 2、認識 工業分野以外に医療やメディア分野もあるだろうが、ここでは工業分野に目を向ける これらは応用編だが、基礎編はなんだろう。 1、カメラからデータを読み込んで表示 2、画像データのフォーマット、色の理解 3、濃度、色の変換。 4、雑音除去、ぼかし 5、輪郭抽出 6、2値化(ラベリング、膨張・収縮) このあたりはOpenCVではモルフォロジー演算のサンプルがある 応用では、 1、計測(キャリブレーション、特徴抽出、ハフ変換、?段取り第一か) ハフ変換は図面にない直線=キズ。真円度 画像処理 計測でgoogleすると キーエンス位置決め キーエンス寸法測定 キーエンス真円度 μ単位まで計測 全数検査 詳細を押すと動画が面白い googleで何度も行き着く先、無作為研究所 一部実測で廉価 これも 1ピクセル(画素)がミクロ単位はほしい。1ピクセルがmm単位だと建築分野 ある深度の範囲で倍率同じ いずれにしても位置や角度が正確につかめ、どの範囲を撮影しているのか正確であればかなりいい精度で計測できるでしょう。 カメラも2種類あり、普通のレンズとテレセントリックレンズだ。テレセントリックレンズだと補正をしなくてもいい。テレセントリックレンズの構造 価格 今は、CADを使うのが普通で計測の自動化もしやすい。3D使う会社は複雑な製品なのでそうれなりの装置が必要です。 2、認識 判別するのに手法などないような気がしますが、harr-likeなんかよく考えると人がモノを判別するときに各特徴を記憶に照らし合わせているのと同じような気がする。人は学習して瞬時に判定するのとxmlの特徴分類器とよく似ている。判断データがあるのが人だ。認識もその方向の方が正確かもしれない。 また、計測は何らかの基準(ノギスやマイクロメーター)などがないとできない。 でもやり方いろいろだな。自信持ってやろう。 やるにしても基本知識がないといけない。 色ろ考えるまでにまず手を動かそう。最小限。以下のサンプルは全部実行すべきだ。 CXCOREのサンプル。OpenCVで使うデータ構造 cvのサンプル。画像処理のアルゴリズム 「今日の訪問数 - 」 「昨日の訪問数 - 」 「今までの訪問数 - 」 名前 コメント
https://w.atwiki.jp/guru/pages/66.html
はじめに 想定する言語及び画像処理ライブラリ 対象者 1. 画像処理の基礎の基礎 2. 2値画像処理? 3. 画像のフィルタリング? はじめに 思いつきで初めてみました。 飽きたら突然終了します。 面倒くさがりなので、基本的には、原理の解説は可能な限り解説ページのリンクを貼る方針でいきます。 想定する言語及び画像処理ライブラリ 言語はC++、画像処理ライブラリにはBoost.GILを想定しています。 Boost.GILはテンプレートを多用しているため、多少プログラミングの経験がないと少し難解かもしれません。 対象者 C++の文法が理解できる C++でSTLの使用経験がある 画像処理関連の研究・開発に従事している、入門者 Boost.GILの使い方が知りたい人 ※ STL (Standard Template Library) については、下記を参照 STL Standard Template Library (Wikipedia) STLのページ Standard Template Library プログラミング on the Web C/C++リファレンス 1. 画像処理の基礎の基礎 画像の種類と構造 画像の入出力? 2. 2値画像処理? 3. 画像のフィルタリング?
https://w.atwiki.jp/nino-add-up/pages/111.html
画像処理関連のコマンド image processing toolboxが必要 画像の読み込み・書き出し imread 読み込み imwrite 書き出し imtool 読み込みから表示まで行う.表示後は距離を測ったり,RGB値を一覧表示することもできる. 画像の表示 image 0から255の範囲で画像表示 imagesc データのスケーリングを自動で行う.最小値を0,最大値を255としたときのimageと結果は同じ. imshow 行列の形からcolormapを自動で決定する上,モニターのpixelとイメージのpixelを一致させるため行列が小さければ小さなイメージが,大きければ大きなイメージが表示される. 画像の表示のオプション truesize モニターのpixelとイメージのpixelを一致させる axis equal tight 画像のx,y軸の大きさを一致させる. axis off 軸のメモリなどを消す. axis square 画像を正方形にする. colorbar カラ-バーの表示 colormap カラーマップを変える. jet hsv hot cool spring summer autumn winter gray bone copper pink lines カラーマップの種類 caxis([最小値 最大値]) 表示させる値の範囲を決定 画像の編集 imresize 画像の大きさを変える imtransform イメージを変換する. imrotate 画像を回転させる. im2double 倍精度に変換する. im2bw バイナリイメージに変換する. imadd イメージを重ねたりする. imsubtract イメージの引き算. immultiply イメージを掛け合わせる. imdivide イメージの割り算 その他 imhist ヒストグラムの表示 [PR] メールフォーム
https://w.atwiki.jp/guru/pages/17.html
OpenCV (Open Computer Vision Library) http //sourceforge.net/projects/opencvlibrary/ Intelが提供しているオープンソースのコンピュータビジョンライブラリ。 画像処理・コンピュータビジョンの便利な関数が実装されている(オプティカルフロー、snakesなど)。 インストール カメラキャプチャ
https://w.atwiki.jp/guru/pages/68.html
画像の種類ベクタ画像 (Vector Image) とは ラスタ (Laster Image) 画像とは 画像の構造色空間 (Color Space)RGB グレースケール (Gray Scale) その他の色空間 ビット深度 (Bit Deapth) 画像の種類 ※ 画像処理入門者は、「画像の種類」は読み飛ばして構いません。あんまり最初から小難しい話をするとイヤになるので。 コンピュータ上で扱う画像の形式には、ベクタ画像とラスタ画像の2種類がありますが、このサイトで扱う画像処理は、全てラスタ画像を対象としてます。 これ以降、単に「画像」と言った場合にはこのラスタ画像を指すものとします。 ベクタ画像 (Vector Image) とは 直線や曲線といった幾何情報をデータとして保持している形式です。 そのため、コンピュータ上で描かれたグラフィクスを保存するには向いていますが、カメラなどで撮影された複雑な風景画などを保存するには不向きです。 幾何情報を元に描画するため、拡大/縮小しても画像が乱れず綺麗に表示されるという特徴があります。 詳細はベクターイメージ (Wikipedia)を参照。 ラスタ (Laster Image) 画像とは 画像を細かい点の集まりとして保持している形式です。 bmp画像やjpg画像がこれに当たります。 詳細はラスターイメージ (Wikipedia)を参照。 画像の構造 一言で画像の構造と言っても、いろいろありますが、ここでは概念的な構造を示すことにします。 画像処理ライブラリを使う場合、ほとんどの場合はここで示す構造を理解していれば事足りるはずです。 まず、理解しやすいところから見ていきましょう。 下記に示す画像は、レナという、まぁ画像処理関連の論文を読んだことのある人にはお馴染みの画像です。 ※ 余談ですが、この元画像は、プレイボーイという雑誌から切り抜かれたポルノ画像です(レナ (Wikipedia)を参照)。 元はこんな画像だったようです(※ヌード画像注意)。 Fig. 1.1 画像の構造 ご覧のように、拡大すると、マス目上の色が敷き詰められていることが分かります(※ラスタ画像の特徴です)。 このマス目ひとつひとつをピクセル (Pixel) と呼んでいます。 この画像は横に256個のピクセル、縦に256個のピクセルが敷き詰められているため、大きさは 256×256 [pixel] などと言います。 色空間 (Color Space) RGB 一般的に、コンピュータ上で色を表すときはRGB色空間を用いることが多いです。 RGB色空間とは、それぞれ赤 (Red)、緑 (Green)、青 (Blue)の3つの成分を混ぜ合わせて色を表現する方法で、それぞれの成分の強さを数値で(座標で)指定することにより黄色や紫色など、様々な色を表現することができます。 この3色は光の3原色と呼ばれ、この混ぜ合わせによって人間の目が知覚できるほぼ全ての色を表現できます(厳密には全ての色ではありません)。 詳細はRGB (Wikipedia)を参照。 グレースケール (Gray Scale) また、画像処理を行う場合には、グレースケールを用いることが多いです。 グレースケールとは、白黒写真みたいなやつで、色情報を含んでおらず、白と黒の濃淡だけで画像を表現します。 グレースケールは厳密には色空間ではありませんが、今の段階では色空間の1種だと思っておいても問題ありません。 Fig. 1.2 グレースケール画像の色空間 Fig. 1.3 グレースケール画像の例 その他の色空間 色空間はRGBやグレースケールのみではなく、HSVやYCbCr、L*a*b*など様々なものがあります。 ここでは詳述しませんが、必要になったらその都度説明していきます。 詳細は色空間 (Wikipedia)を参照。 ビット深度 (Bit Deapth) 詳細はビット深度 (Wikipedia)を参照。
https://w.atwiki.jp/baron/pages/34.html
import java.io.*; import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.awt.geom.*; import javax.imageio.*; import javax.swing.*; public class AffineTest extends JPanel{ private double t = 0; private double dt = Math.toRadians(90); private BufferedImage img = null; public static void main(String[] args){ JFrame frame = new JFrame("アフィン変換テスト"); frame.getContentPane().add(new AffineTest()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400,400); frame.setVisible(true); } public AffineTest(){ try{ File file = new File("test.jpg"); img = ImageIO.read(file); addMouseListener(new MyMouse()); }catch(Exception e){} } class MyMouse extends MouseAdapter{ public void mouseClicked(MouseEvent e){ t += dt; repaint(); } } public void update(Graphics g){paint(g);} public void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; AffineTransform a = AffineTransform.getRotateInstance( t , 180 , 50 ); g2.setTransform(a); g2.drawImage(img , 10 , 40 , this); } }