C++で任意行数のテキストデータ読み込み
- 作者: 高橋麻奈
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2012/08/31
- メディア: 単行本
- 購入: 1人 クリック: 1回
- この商品を含むブログ (5件) を見る
目次
- 目次
- はじめに
- 任意行数のテキスト読み込み
- サンプル入力
- サンプルコード
- サンプル出力
- コメントアウト付きテキストの読み込み
- 最後に
はじめに
テキストファイルに記述された任意の行数の情報をプログラム上で読み取る必要があったので、その際のコードをメモしておきます。VisualStudio2015で動作確認済みです。
特筆すべきことはなく、他にテキスト読み込みのコードを載せている方々と異なるのは、テキスト情報の行数が変わった場合に対応できるよう、格納する型をstd::vector<std::string>としてあるくらいかと思います。
Windows8.1からWindows10へアップグレード【2019年3月版】
久しく使用していなかったWindows8.1のLet's noteをWindows10に今更ながらアップグレードすることしたのでそのメモです。
Microsoft Windows 10 Pro April 2018 Update適用(最新) 32bit/64bit 日本語版|パッケージ版
- 出版社/メーカー: マイクロソフト
- 発売日: 2017/12/15
- メディア: USBメモリスティック
- この商品を含むブログを見る
目次
Window10アップグレードツールのダウンロード
Windows10にアップグレードするためのツールをMicrosoftの公式ページからダウンロードします。以下のリンクから、「ツールを今すぐダウンロード」をクリックしダウンロードできます。
https://www.microsoft.com/ja-jp/software-download/windows10
Window10へアップグレード
以下のようなファイルがダウンロードされるはずなので、実行します。
LaTeX 複数ページPDFから図を挿入する方法
- 作者: 奥村晴彦,黒木裕介
- 出版社/メーカー: 技術評論社
- 発売日: 2017/01/24
- メディア: 大型本
- この商品を含むブログ (2件) を見る
はじめに
LaTeXにPDFから図を入れる際に、複数ページあるPDFファイルから任意のページの図を挿入したいことがあったのでメモしておきます。
環境:
- Windows10 Pro
- TeX Live 2017
\includegraphicsにpageオプションを付ける
以下のように\includegraphicsのオプションに"page=<読み込みたいページ番号>"を追加することで任意のページの画像を張り付けることができます。
\documentclass[11pt,a4j]{jarticle} \usepackage[dvipdfmx,hiresbb]{graphicx} \title{複数ページPDFから図を挿入する方法} \author{ふみ八} \begin{document} \maketitle % PDF 1ページ目の画像 \begin{figure}[!hbt] \centering \includegraphics[width=0.5\textwidth, page=1]{Sample.pdf} \caption{Sample p.1} \label{Sample p.1} \end{figure} % PDF 2ページ目の画像 \begin{figure}[!hbt] \centering \includegraphics[width=0.5\textwidth, page=2]{Sample.pdf} \caption{Sample p.2} \label{Sample p.2} \end{figure} \end{document}
サンプル用のPDFおよびtexドキュメントは以下においてあります。
Sample.pdf
Topic_Multi_page_PDF.tex
出力結果
上記のコードを実行するとこのようなページが作成されます。
LaTexにソースコードを貼る方法
はじめに
LaTexで論文を書く中でプレグラムのソースコードを載せる必要があったので、そのメモです。ソースコードをそのままLaTexに張り付けちゃうと記号とかインデントとかぐちゃぐちゃになってしまうので、コピペで簡単にきれいに貼れる方法を調べました。
ソースコードを貼る方法
まず、LaTexソース内でパッケージ定義をしている部分(\documentclassから\begin{document}の間)に以下の一行を追加します。
<英語フォントのみの場合>
\usepackage{listings}<日本語フォントを含む場合>
\usepackage{listings, jlisting}<色を使う場合は以下も追加>
\usepackage{color}
私の場合はlisting.styはデフォで入っていましたが,jlisting.styはなかったので,ダウンロードして追加しました.texliveを利用している場合は、スタイルファイル(.sty)が格納されるディレクトリは以下のところです。
そして、格納したカレントディレクトリ上でGitBashなどで以下のコマンドを打てば使えるようになります。
$ mktexlsr
次にLaTexソースの本文中に以下のようにプログラムのソースコードを貼り付けます。これでLatexにソースコードを貼れたはずです。
\begin{lstlisting}[basicstyle=\ttfamily\footnotesize, frame=single]
(ここにプログラムソース)
\end{lstlisting}
個人的な初期設定
% ソースコードを挿入するための設定 \usepackage{jlisting} \usepackage{listings} \usepackage{color} \definecolor{OliveGreen}{rgb}{0.0,0.6,0.0} \definecolor{Magenta}{cmyk}{0, 1, 0, 0} \definecolor{colFunc}{rgb}{1,0.07,0.54} \definecolor{CadetBlue}{cmyk}{0.62,0.57,0.23,0} \definecolor{Brown}{cmyk}{0,0.81,1,0.60} \definecolor{colID}{rgb}{0.63,0.44,0} \lstset{ language={Matlab}, %言語の指定 basicstyle={\ttfamily\small}, %書体の指定 backgroundcolor={\color[gray]{.95}}, %背景色と透過度 keywordstyle={\color{blue}}, %キーワード(int, ifなど)の書体指定 commentstyle={\color{OliveGreen}}, %注釈の書体 stringstyle=\color{Magenta}, %文字列 frame=single, %枠縁(leftline,topline,bottomline,lines,trBL,shadowbox, single) numbers=left, %行番号表示 numberstyle={\ttfamily\small}, %行番号の書体指定 breaklines=true, %折り返し(自動改行) breakindent = 10pt, %自動改行後のインデント量(デフォルトでは20[pt]) tabsize=2, %タブの大きさ captionpos=t %キャプションの場所(t,b : "tb"ならば上下両方に記載) } \renewcommand{\lstlistingname}{Code} % キャプション名の指定
MATLABのコード(.m)をきれいに貼る方法
こちらの方のサイトが参考になります。私の環境ではエラーが出てしまったので使わなかったですが…
http://castanophilia.hatenadiary.com/entry/2014/11/24/091708castanophilia.hatenadiary.com
listingsについて詳しく知りたい方
こちら詳細が載っています。英語ですが。
http://texdoc.net/texmf-dist/doc/latex/listings/listings.pdf
こちらのサイトを参考にさせていただきました。
listingsを用いてLatexにソースコードを直接挿入する方法 (Windows) - 白猫学生のブログ
TeXでソースコードを綺麗に表示する - SanRin舎
Latexにプログラムっぽいフォントでソースコードを載せる簡単な方法 | しゃこメモ
LaTeXにソースコードを【美しく】貼る方法 - Qiita
TeXでソースコードを埋め込む - Qiita
ソースコードを簡単挿入 - LaTeXでつくる爆速プログラミングレポート - MAST Web
OpenCVでchArUcoマーカー/コーナー検出
使用する関数の説明
- cv::aruco::detectMarkers(...) : マーカー検出関数
<引数>
- 入力画像
- 検索するマーカーの種類
- 検出されたマーカーコーナーのベクトル(Nx4配列)
- 検出されたマーカーIDのベクトル(int Nx1配列)
- マーカー検出パラメータ
- cv::aruco::PREDEFINED_DICTIONARY_NAME : マーカー種類のインデックス
- cv::aruco::drawDetectedMarkers(...) : 検出マーカー描画関数
<引数>
- 入出力画像
- 検索するマーカーの種類
- 検出されたマーカーコーナーのベクトル(Nx4配列)
- 検出されたマーカーIDのベクトル(int Nx1配列)
- cv::aruco::CharucoBoard::create(...) : ChArUcoボードオブジェクトの生成
<引数>
- X方向のパターン数
- Y方向のパターン数
- パターン1個の物理サイズ [m]
- マーカー1個の物理サイズ [m]
- マーカー種類のディクショナリ
C++サンプルプログラム(単純な検出&描画)
#include <iostream> #include <vector> #include <opencv2/opencv.hpp> #include <opencv2/aruco/charuco.hpp> #ifndef _DEBUG // Releaseモードのみで動作 #pragma comment(lib,"opencv_calib3d330.lib") #pragma comment(lib,"opencv_core330.lib") #pragma comment(lib,"opencv_highgui330.lib") #pragma comment(lib,"opencv_imgproc330.lib") #pragma comment(lib,"opencv_imgcodecs330.lib") #pragma comment(lib,"opencv_aruco330.lib") #endif int readImage(cv::Mat &mat_image, char *dire); int main() { // Read ChArUco stereo images cv::Mat img, dstimg; readImage(img, "< yourpath >"); // Create dictionary const cv::aruco::PREDEFINED_DICTIONARY_NAME dictionary_name = cv::aruco::DICT_6X6_250; cv::Ptr<cv::aruco::Dictionary> dictionary = cv::aruco::getPredefinedDictionary(dictionary_name); // Detect markers std::vector<int> markerIdx; std::vector<std::vector<cv::Point2f>> markerCorners, rejectedImgPoints; cv::Ptr<cv::aruco::DetectorParameters> detectorParams = cv::aruco::DetectorParameters::create(); cv::aruco::detectMarkers(img, dictionary, markerCorners, markerIdx, detectorParams, rejectedImgPoints); // create charuco board object const int squaresX = 8; const int squaresY = 11; const float squareLength = 0.031; const float markerLength = 0.0185; cv::Ptr<cv::aruco::CharucoBoard> charucoboard_obj = cv::aruco::CharucoBoard::create(squaresX, squaresY, squareLength, markerLength, dictionary); cv::Ptr<cv::aruco::Board> charucoboard = charucoboard_obj.staticCast<cv::aruco::Board>(); // refind strategy to detect more markers cv::aruco::refineDetectedMarkers(img, charucoboard, markerCorners, markerIdx, rejectedImgPoints); // Draw detected markers cv::cvtColor(img.clone(), dstimg, cv::COLOR_GRAY2BGR); cv::aruco::drawDetectedMarkers(dstimg, markerCorners, markerIdx); cv::imshow("Detected result", dstimg); cv::waitKey(0); return -1; } int readImage(cv::Mat &mat_image, char *dire) { // read stereo images in as grayscale (CV_8U): mat_image= cv::imread(dire, 0); if (mat_image.empty()) { printf("ERROR! failed to read one or both images, exiting...\n"); return 0; } return 1; }
マーカー検出結果
C++サンプルプログラム(ChArUcoボードのコーナー検出)
// refind strategy to detect more markers ... // Interpolate charuco corners // if at least one marker detected std::vector<cv::Point2f> charucoCorners; std::vector<int> charucoIdx; if (markerIdx.size() > 0) { cv::aruco::interpolateCornersCharuco( markerCorners, markerIdx, img, charucoboard_obj, charucoCorners, charucoIdx); } // Draw detected corners ... if (charucoIdx.size() > 0) cv::aruco::drawDetectedCornersCharuco(dstimg, charucoCorners, charucoIdx, cv::Scalar(0, 0, 255)); ...
コーナー検出結果
説明文の折り畳み方法に関してはこちらの記事を参考にさせていただきました。
はてなブログでソースコードを折りたたむ方法 - おもちゃラボ
詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識
- 作者: Gary Bradski,Adrian Kaehler,松田晃一,小沼千絵,永田雅人,花形理
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/05/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
似たような感じの英単語まとめ
個人的に気になった、似てるけど違う用法の英単語や似たような意味の英単語をメモしたものです。メモ書き程度ですが誰かの参考になればと思います。
目次
- 目次
- inversely と conversely の違い
- incident と coincident の違い
- hence, therefore, thus, so の違い
- in front of と in the front of の違い
- famous と renowned の違い
- intriguing と interesting の違い
- put on, wear, dress の違い
- outfit, clothes, clothing, attire の違い
- acronym と abbreviation の違い
- 英語問題を載せているサイトのリンク
inversely と conversely の違い
"inversely"と”conversely”どちらも「逆に」という逆接を意味する言葉ですが、使い分けがあるようです。
inversely | 一般的に数学用語で用いられる |
---|
ex.) inversely proportional : 反比例
conversely | 一般的な文章や会話で用いられる |
---|
ex.) Our professor said we could take a final exam, or conversely, write a 30-page term paper.
incident と coincident の違い
"incident"と"coincident"は「生じる」ことを意味する言葉ですが、どう違うのでしょうか。
incident | 一つのイベントが生じるとき |
---|
ex.) Nobody was looking at that incident.
coincident | 2つ以上のイベントが同時に生じるとき (co- : 複数であることを表す接頭語) |
---|
ex.) His death was coincident with his son's birth.
hence, therefore, thus, so の違い
hence | …だから~(と予想されるだろう)のときに用いられる |
---|---|
therefore | …だから~(ならざるを得ないだろう・そうなるのは当然)のときに用いられる |
thus | ...だから(その結果として)~のときに用いられる |
参考:
so, hence, therefore, thusの違い 英語力を上げるには? Vol.6 英会話のマスターはライティングから|神戸 オーパス英語学院
in front of と in the front of の違い
famous と renowned の違い
"famous"も"renowned"もともに「有名な」ことを意味する言葉ですが、どう違うのでしょう。
famous | 一般的によく使われる言葉でとくに用途の決まりは特にない。しいて言えば、良い意味で広く知られているときに使われる言葉です。 |
---|
ex.) That festival is famous, isn't it ?
renowned | 多くの人に知れていて、良い意味を持つときに用いられる。 |
---|
ex.) He was highly renowned throughout the world as a great pianist.
他にも「有名な」の意味で、以下のような言葉があります。
well-known | よく知られた |
celebrated | 名高い |
notorious | 評判の良くない |
infamous | 悪名高い |
noted | 注目をひいている |
参考:
famous / well-known / renowned / celebrated / etc... の違い | ER Synonym Dictionary Online
intriguing と interesting の違い
"intriguing"と"interesting"はどちらも「面白い」の意味を持つ言葉ですが、どう違うのでしょうか。まあ、ほとんど同じ意味で使われるそうですが、強いて言えば以下のような違いがあるそうです。
intriguing | もっと深く知りたいと思うような興味をそそられるときに用いられる。 |
---|
ex.) Your words are intriguing and helpful.
interesting | 面白いと思うが、そこまでもっと知りたいと思わないときに用いられる。 |
---|
ex.) This book is really interesting.
参考:
interesting と intriguing はどう違いますか? | HiNative
put on, wear, dress の違い
"put on"、"wear"、"dress"はどれも「身に着ける」意味を持つ言葉ですが、それぞれ異なる状況で用いられます。
put on | 身に着ける動作を表すときに用いられる |
---|
ex.) I put on a jacket this morning.
wear | 身に着けている状態を表すときに用いられる |
---|
ex.) I'm wearing a jacket now.
dress | (誰かに)服を着せるというときに用いられる |
---|
ex.) She was dressing her child.
ex.) He can't dress himself.
参考:
「服を着る」のput on / wear / dressの違い | ネイティブと英語について話したこと
outfit, clothes, clothing, attire の違い
"outfit"、"clothes"、"clothing"、"attire"はいずれも「衣服」を意味する言葉ですが、どのように違うのでしょうか。
outfit | 一般的にコーディネート全体を含めた衣服を指すときに用いられる |
---|---|
clothes | 身に着けるものであればなんでも表される |
clothing | clothesと同様 |
attire | フォーマルな衣装の時に用いられる ex.) business attire, sports attire, formal attire ... |
参考:
outfit と clothes と clothing と attire と apparel はどう違いますか? | HiNative
acronym と abbreviation の違い
"acronym"と"abbreviation"はどちらもLOLやJPYといった「省略語」のことを言いますが、ちゃんと使い分けがあります。ちなみに、acronymは発音するとき"r"を発音せずにカタカナで書くと「アクニム」と言いますね。
acronym | 頭文字をとった略語に用いられる |
---|
ex.) LOL = laugh out loud (日本でいう'(笑)'や'www'と一緒の意味)
abbreviation | とにかく省略された言葉全てに用いられる (数学的に、abbreviation ⊃ acronym ) |
---|
ex.) JPY= Japan yen
参考:
略語 : abbreviation と acronym - 職業プログラマの休日出勤
学校では教えてくれないacronymランキング | "学者への道" in California Berkeley
Gitの使い方メモ
はじめに
Gitを使い始めるにあたりこちらの書籍がわかりやすく参考になりました。
その他のことも暇なときに追加していきたいと思います(メモ程度ですが)。
わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉
- 作者: 湊川あい,DQNEO
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2017/04/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
環境
OS : windows10 64bit
Git ver. : 2.18.0
Tool : SourceTree ver.3.0.8
git init:リモートリポジトリの作成
まず、Git Bashを起動します。以降の作業は基本的にすべてGit Bash上で行います。
[ Git Bashがなんなのかを知りたい方はこちら ↓↓]
- Git Bashって使ってる?Windowsで動く意外にすごい便利ツール | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト
- WindowsでGitを始めたらまず確認!Git Bashの設定&ショートカット | 株式会社グランフェアズ
*コマンドシェルでの注意点
以下のように'\'ではなく'/'を使って下さい。
x:mkdir \c\Users\"Username"\OneDrive\GitSpace
o:mkdir /C/Users/"Username"/OneDrive/GitSpace
利用したいサーバにリモート・リポジトリを作成するために任意のディレクトリを作成します。
// 例:OneDriveのGitSpaceディレクトリに作成する場合
$ mkdir /C/Users/<Username>/OneDrive/GitSpace
$ mkdir /C/Users/<Username>/OneDrive/GitSpace/sample.git
共有設定したディレクトリに移動し、オプションを指定して”git init”コマンド実行します。
$ cd /C/Users/<Username>/OneDrive/GitSpace/sample.git $ git init --bare --shared Initialized empty shared Git repository in C:/Users/<Username>/OneDrive/GitSpace/sample.git/
これで共有リポジトリが作成されました。
次にローカルのリポジトリに移動して,作成したリポジトリを"origin"という名前のリモート・リポジトリとして追加します。今回はデフォルト設定の"origin"という名前にしましたが、任意に変更してください。
// 例:ローカルリポジトリを”/C/<yourpath>/Gitwork”とする場合
$ cd /C/<yourpath>/Gitwork
$ git remote add origin /C/Users/<Username>/OneDrive/GitSpace/sample.git
$ git remote -v
origin C:/Users/<Username>/OneDrive/GitSpace/sample.git (fetch)
origin C:/Users/<Username>/OneDrive/GitSpace/sample.git (push)
git remote にオプション"–v"指定して実行し、originに対する書き込み(push)と読み取り(fetch)コマンドが表示されれば、リモート・リポジトリが正しく作成されています。
こちらのサイトが非常に参考になったのでリンクを貼っておきます。
参考サイト:
【Git入門】git initによるリモートリポジトリの作成方法
WindowsでGitを始めたらまず確認!Git Bashの設定&ショートカット | 株式会社グランフェアズ
git mv:ファイル名の変更
$ git mv sample.html sample_remane.html
touch:新規ファイルの作成
$ touch sample.txt