photon用治具

壊れました!!

m4インサート見つからんくて、ドリルで穴広げてどうにかできないかやったら、

コレですよ!!

治具取り付けの際にネジ穴いくつか壊れたからネジ捨てちゃったよ…

保管されてる余りネジで頑張って付けた。

モデル改造して、ナット入れられるようにしよう

Cube PDF UtilityでCドライブ容量が圧迫されていた話

こんにちは。
くろんです!

今回は趣味でやっている書籍電子化に関する話です。

漫画を電子化するときの手順として
カラーページとモノクロページのつなぎ合わせ作業があります。

その時に私は「Cube PDF Utility」というソフトを使用しています。

こちらのソフト、編集作業が直感的に行える&機能がシンプルなのでとても使いやすくおすすめです。

今回、TEMPファイルによってCドライブが圧迫されていた現象があったのでメモとして残しておきます。

TEMPファイルは以下のフォルダにありました。

C:\Users(ユーザー名)\AppData\Local\CubeSoft\CubePdfUtility2

こちらに作成日付フォルダを作り、その中にTEMPファイルがあります。
おそらく一定期間で消えるものですが、一度に作業をし過ぎると溜まりすぎてしまうので手作業で消すのが無難だと思います。

※ あくまでTEMPファイルと言っているのは推測ですので、削除は自己責任でお願いします。

では!

OpenCVで複数のテンプレートマッチングする方法

こんにちは。
くろんです!

今回はOpenCVを使って画像中から複数のテンプレートマッチングを行います。

今回はサンプル画像はこちら

かえるのうたの歌詞がのった画像を用意しました!!

こちらのサンプルから「ワ」を切り出した下のようなマッチング用画像を作りました、
サンプル画像から「ワ」をすべて抽出したいと思います。


#include <vector>
#include "opencv2/opencv.hpp"

int main()
{
	cv::Mat src = cv::imread("カエルの歌.png");
	cv::Mat key = cv::imread("カエルの歌KEY.png");

	cv::Mat res;
	cv::matchTemplate(src, key, res, cv::TM_CCOEFF_NORMED);

	std::vector<cv::Point> locs;

	for (int y = 0; y < res.rows; y++) {
		for (int x = 0; x < res.cols; x++) {
			uchar* uctemp = &amp;res.data[y * res.cols * 4 + x * 4];
			float* ftemp = (float*)(uctemp);
			if (*ftemp > 0.95) {
				bool isExist = false;
				for (auto ml : locs) {
					// 今までに見つかった場所からある程度離れないと検出扱いにしない.
					int d = pow(y - ml.y, 2) + pow(x - ml.x, 2);
					if (d < 10) {
						isExist = true;
					}
				}

				if (!isExist) {
					locs.push_back(cv::Point(x, y));
				}
			}
		}
	}

	for(auto l : locs) {
		cv::rectangle(src, cv::Rect(l.x, l.y, key.cols, key.rows),
										cv::Scalar(0, 0, 255));
	}

	cv::imshow("result", src);

	cv::waitKey();

	return 0;
}

結果はこんな感じになります。

しっかり「ワ」の場所だけ抽出できているかと思います。

以上

では!

文字コード変更プログラム公開しました

こんにちは。
くろんです!!

で思いがけず文字コードについて勉強する機会が出来たので、
なんとなく文字コードを変換するプログラムを作りました。

https://github.com/ckron/TextEncodeChanger/

こちらです、対応文字コードは

SHIFT_JIS: 932
UTF16_LE: 1200
UTF16_BE: 1201
UTF32_LE: 12000
UTF32_BE: 12001
EUC_JP: 20932
UTF7: 65000
UTF8: 65001

です。

内容は単純な文字コードの変換をするだけのものですが、文字コード周りで困っている方がいたらもしかしたら役に立つかもしれません。

役に立たないかなぁー?役に立ったらいいなー

使い方はmain.cpp にサンプル載せているのでそこら辺参照でお願いします。

では