おぉ、勘違いでしたか。問題が解決したようで何よりです。 画像翻訳はプロローグなど、勝手に字幕が流れてしまうようなものを画像ファイルとして保存して、任意のタイミングで翻訳する為の機能です。 PCOTにしかない機能なので、常用しないと中々慣れませんが使いこなせば便利なので、頭の隅にでも覚えておいて頂けると幸いです。
すみません。上記問い合わせに関しては完全にこちらの勘違いでした。 「フリー選択」の機能を使いたいところを途中から「画像翻訳」だと思い込んで間違って使用しておりました。 ご対応いただきありがとうございました。
PCOTのご利用ありがとうございます。 お問合せの件についてですが、色々試してみても残念ながら再現できません。 「範囲選択時」とあるので、画像ファイルは然るべき場所に存在するということですよね?
途中まで普通に使えていたとの事なので、設定ファイルが壊れたのかもと思いましたが画像翻訳で画像ファイルに対して何かする設定はない筈(パスを見てるだけ)なので、パスの参照が上手くいかない原因がないかを確認して頂きたいです。
具体的には下記に挙げた確認項目を確認して頂きたいです。
ざっと思い浮かぶのはこの辺りですが、設定ファイルが壊れているのが原因である可能性もあります。 再インストールは既に試されたとのことですが、上記のリストの確認に加え、HPからPCOTをダウンロード&展開し、真っ新な状態で実行した上で新しく画像をキャプチャーしても同様のエラーが発生するかも確認して頂きたいです。
お手数をおかけしますが、提示した確認方法を試した後にもう一度結果を報告して頂けると助かります。
画像翻訳時に範囲を選択したときに下記エラーが発生します。 「image[プロセス名]内に画像ファイルが存在しません。」
特定のプロセスだけではなくすべてのプロセスにて表示されます。 インストールしてすぐは問題なく普通に使用できていましたが、途中から出てき始めました。
※再インストールは試してみましたが、効果はありませんでした。 ご回答お願い致します。
改めて試したところ、ちゃんと読めるようになったので設定方法をご案内させていただきます。環境によってそのままでは使えない可能性があるので、適宜調整してください。
方法として、PCOTの画像加工機能を利用します。 1.画面上部メニューの設定→画像加工&OCR読取設定で画像加工画面を開きます。 2.添付した画像の通りに画像加工を行い、OCRテストで読取確認を行った後、保存ボタンを押して設定を保存します。
設定画像
以下に細かい設定と注意点を記載します。
【設定方法】 1.描画補間法「高品質双三次」を追加 2.彩度「10」を追加 3.彩度「5.2」を追加 4.グレースケール「八値」を追加 5.ノイズになっている部分を色置換で背景色に置換
【注意点】 ・OCR読取設定にある倍率項目の「加工前に適用」に必ずチェックを入れる ・画面左上の「設定選択」で専用のプリセットを作成することを推奨します(他のゲームでも上記の画像加工が適用されてしまうため)
以上、参考になれば幸いです。 また、画像加工はとても複雑な機能なので、使い方が分からない場合は気軽にお問い合わせください。
外出から帰って早速試してみました。 結論から言うと、難しそうです・・・。
理由は下部の画像の通り、白い文字を拡大すると白の単色ではなく、複雑な中間色があるため、画像加工で色を置換しようとしても、背景色と近すぎて背景色も文字色として巻き込んで置換されてしまう為です。
現在、画像加工の機能強化を模索していますので、それによって改善される可能性はありますが、保証はできません。
お役に立てず誠に申し訳ないのですが、何卒ご了承頂きたいです。
代筆ありがとうございました! 帰ったので、回答を引き継ぎます。
こんばんわ。PCOT作者さんの知人です。作者さん今長期旅行中でなぜか出先から掲示板に書き込めないそうです。作者さんが旅行から帰られるまで待っていただけるとありがたいですが、お急ぎでしょうか?
画像が添付できていませんでした、すみません。
コメント失礼致します。 現在PCOTを利用してゲームを遊んでいるのですが、一部で画像上のように翻訳したい文章の背景に文字が流れてくるため、うまく翻訳が行えません。 こういった場合はどのように設定を変えると背景の文字を読み込まず翻訳が行えるのでしょうか? 初歩的なことで申し訳ないのですが、ご教授願います。
PCOTをご利用いただきありがとうございます。 昔のゲームではフルスクリーンしか存在せず「Alt+Enter」でも反応しないゲームも確かにありますが、その場合は窓化ツールなどを利用できるかもしれません。
海外のインディーゲームをプレイするときだいたい日本語化がないのでPCOTを見つけられてよかった フルスクリーンのゲームでも「Alt+Enter」でウィンドウ化すれば機能する、かも?
こちらこそ、PCOTを見つけてくださってありがとうございます! PCOTがじごちゃん様の配信でお役に立てるよう願っています!
こんなソフトがあったとは感激です! 実はYouTubeのゲーム実況で使用させていただく予定です。 ありがたく使用させていただきます!!
ご報告ありがとうございます。 PCOTが配信のお役に立てるよう願っております!
英語が苦手なので、本日英語のGAME配信で使用させて頂きます
対応頂きありがとうございます、難なくDLすることが出来ました!
ご対応ありがとうございます!
GoogleDrive上からダウンロードでき利用することができました。お早い対応ありがとうございました!
原因はさっぱり見当がつきませんが、対応策としてOneDriveの共有リンクを取得し直してみました。
お手数ですが、もう一度試して頂いてもよろしいでしょうか? これでダメな場合はE様が報告して頂いた通り、OneDriveの障害の可能性が高いです。 その場合はGoogleDriveに置き直すなど、対策を講じたいと思います。
Xにてフォロワーさんに色々試して頂いた結果「他のファイルはDL出来る」との報告を頂いたので、もしかしたらPCOTがOneDriveにウイルス認定されている可能性があります。 一旦GoogleDriveに置き直したので、ダメだった方は再度試して頂きたいです。
↑と同じ現象です。 ファイル名のところにカーソルを合わせると「PCOT.ZIP ブロック」と表示されます。
OneDriveの障害でしょうか? https://news.yahoo.co.jp/articles/9965a4d3aa9c846fc69fa71c8c2be3eca5adda97
PCOTをダウンロードしようとしたところダウンロードできませんでした(同じOneDriveにアップロードされているSWFRはダウンロードできました)
DLボタン→OneDriveの画面でダウンロードボタンをクリック→OneDriveへのログイン画面が表示される→適切なユーザーとパスワードを入力する→リダイレクトのような処理(?)が実行されるもログインできずエラー画面が表示される(※添付ファイル参照)
PCOTはダウンロードできていません
同じアカウントでOneDriveのサービスにはログインできることは確認しています
追記です
フォルダ一覧のPCOT.zipフォルダの横部分には、◯に-が入った様なアイコンが表示されています
ダウンロードを押すとエラーファイルが入ったものがDLされます
はい、その理解大丈夫です。 私はPG構造を知らないので目的のことがもっと簡単にできるのであればその手段のほうが適切だと思います。エンドユーザーにとってPG構造は意識するところではなく、使い勝手がすべてですので。 「色1以外を色2に置換」 この表現はいいですね。ユーザーにとってより理解しやすいと思います。 実装を楽しみにしております。
重ねてご提案を頂き、ありがとうございます。
理解として正しいかどうかちょっと不安ですが・・・ 1.現行のPCOTにある色置換で文字色を単色にする(アンチエイリアスを潰す) 2.単色にした文字色のマスクを作成 3.背景を黒にする という理解で合っていますか?
単色以外を置換する方法であれば、今のアルゴリズムで判定を反転させるだけでも十分実用的な速度になると思います。 単色+色距離(10~100)とすると、凄まじく重くなるのが問題です。
単色以外を置換で機能的に必要十分ということであれば「色1以外を色2に置換」の方が文字色を判定する必要がないので、実装する私も使用するはまさんも楽だと思うのですが、いかがでしょうか?
ちょっと補足すると、文字部分を透明にしたのはRGB値ではなくアルファチャンネルの値によるものです。 >(2)wkBmpの画像全体について、彩度を0にして真っ黒にする。真っ黒にしたとしても、文字部分は透明のまま。 RGBカラーとしては全部真っ黒なんですけど、文字(橙色)部分はアルファチャンネルによって透明になるので、画像を重ねたときに文字部分がちゃんと見えるということになると思います。
③橙色以外を黒に変換 の部分は「画像加工&OCR読み取り設定」にて「文字色以外は消去」という選択項目を追加します。 文字色を指定(画像から色を抽出)させて追加ボタンを押させる形なので、既存のUIを踏襲できると思います。
// 画像属性を作成 ImageAttributes attributes = new ImageAttributes(); attributes.SetColorMatrix(colorMatrix); // マスク画像に透明部分以外を黒(or赤)に設定 g.DrawImage(maskBmp, new Rectangle(0, 0, maskBmp.Width, maskBmp.Height), 0, 0, maskBmp.Width, maskBmp.Height, GraphicsUnit.Pixel, attributes); } // 結果画像を作成(元画像にマスク画像を重ねる) Bitmap resultBmp = new Bitmap(wkBmp.Width, wkBmp.Height, PixelFormat.Format32bppArgb); using (Graphics g = Graphics.FromImage(resultBmp)) { // オリジナル画像のロード Bitmap orgBmp = new Bitmap("D:\work\test2.png");
// オリジナル画像を描画 g.DrawImage(orgBmp, 0, 0);
// マスク画像を重ねる(橙文字部分が透明、その他の背景部分は黒(or赤)に変換済み) g.DrawImage(maskBmp, 0, 0); } // PictureBoxに結果画像を表示 pictureBox1.Image = resultBmp; }
private void button1_Click(object sender, EventArgs e) { // 画像のロード Bitmap wkBmp = new Bitmap("D:\work\test2.png");
// 指定する色を透明に設定 Color targetColor = Color.FromArgb(255, 136, 0); // 例: 橙色を透明にする wkBmp.MakeTransparent(targetColor);
// マスク用画像オブジェクトを作成(PixelFormat.Format32bppArgbを使用) Bitmap maskBmp = new Bitmap(wkBmp.Width, wkBmp.Height, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(maskBmp)) { // 元の画像(橙文字部分が透明)を描画する g.DrawImage(wkBmp, 0, 0);
// 彩度を0にするColorMatrixを作成 ColorMatrix colorMatrix = new ColorMatrix( new float[][] { new float[] {0, 0, 0, 0, 0}, new float[] {0, 0, 0, 0, 0}, new float[] {0, 0, 0, 0, 0}, new float[] {0, 0, 0, 1, 0}, new float[] {0, 0, 0, 0, 1} });
//もし文字色が黒なら、背景は赤色にする。 if (false) { colorMatrix = new ColorMatrix( new float[][] { new float[] { 1, 0, 0, 0, 0 }, new float[] { 0, 0, 0, 0, 0 }, new float[] { 0, 0, 0, 0, 0 }, new float[] { 0, 0, 0, 1, 0 }, new float[] { 1, 0, 0, 0, 1 }
}); }
ご返信、ありがとうございます。ご検討いただけてうれしいです。 >白色部分はアンチエイリアスの影響で単色ではないように思います はい、なのでPCOTの「画像加工&OCR読み取り設定」を使ってアンチエイリアス部を変換します。 ①橙色(画面から取得)を範囲100で橙色に変更 ②白(画面から取得)を範囲100で橙色に変更 これにより文字をすべて橙色に変換した結果がこんな感じです。
この画像(ハードコピーしたpng)に対してサンプルソースで ③橙色以外を黒に変換 という処理を重ねた結果が以下画像になります。
この画像をPCOTで翻訳すると以下のようになりました。 こんな感じで実用性はありそうに感じています。
前に書いたソースは文字部分が白になっているので、部分修正と補足説明を追加したものを次にアップしますが、処理の概要としてはいかになります。 (1)オリジナル画像(orgBmp)の文字部分(橙色)を透明にしたものをwkBmpに格納する。 (2)wkBmpの画像全体について、彩度を0にして真っ黒にする。真っ黒にしたとしても、文字部分は透明のまま。 (3)オリジナル画像(orgBmp:変換前のもの)にwkBmpを重ねると、文字部分のみが透明なので、文字部分は橙色として見えるがその他の部分はwkBmpの黒が上書きされている。 というイメージです。
今回作っているのは文字部分が橙色のため「橙色以外を彩度0(真っ黒)に変換する」でよいのですが、文字色が黒だとこれではだめです。その対策のため、ソースに「文字色が黒なら背景は赤色にする」というサンプルを入れております。文字色が黒なら、という判定はif(false)になっているので、ここは修正ください。
処理のご提案ありがとうございます。
画像を拝見しました。 なるほど、これはネイティブの人でも読み辛そうですね・・・。
いくつか質問させてください。
こちらで前に試した時は前に書いた通り、巻き込む色を増やすと激重になりました。 そして、添付された画像を見る限り、白色部分はアンチエイリアスの影響で単色ではないように思います。 貼って頂いたソースでは、マスクしている色、即ち「targetColor」は白の単色(255,255,255)ですが、これはちゃんと動作するのでしょうか? 巻き込む色を全てマスクする場合、重くなるのではないかと懸念しています。
ご提示頂いたソースでは彩度を0(黒)にしていますが、これは色置換の逆ではなく処理としては「指定した色以外を全て黒色に置換する」となっています。 仮に黒色(またはそれに近しい色)をマスクした時、彩度を0にする方法だと処理後の画像は真っ黒になりそうな気がします。 これについて何か解決方法はありますか?
最後に、PCOTはC#で組んでいるのでご提示頂いたソースはそのまま流用可能です。 ありがとうございます。 書き込みに関しては全く不快だとは思いません。解決方法までご提示頂けて感謝の気持ちで一杯です。 PCOTは当初自分で使う目的で突貫工事で作ったツールで、大半は一人であれこれ悩んで実装してきたので、こうしてコードベースで一緒に考えてくれる人がいるのは大変心強いです。
private void button1_Click(object sender, EventArgs e) { // 画像のロード Bitmap bmp = new Bitmap("path_to_your_image.bmp"); // 指定する色を透明に設定 Color targetColor = Color.White; // 例: 白色を透明にする bmp.MakeTransparent(targetColor); // マスク画像を作成(PixelFormat.Format32bppArgbを使用) Bitmap maskBmp = new Bitmap(bmp.Width, bmp.Height, PixelFormat.Format32bppArgb); using (Graphics g = Graphics.FromImage(maskBmp)) { // 元の画像を描画する g.DrawImage(bmp, 0, 0); // 彩度を0にするColorMatrixを作成 ColorMatrix colorMatrix = new ColorMatrix( new float[][] { new float[] {0, 0, 0, 0, 0}, new float[] {0, 0, 0, 0, 0}, new float[] {0, 0, 0, 0, 0}, new float[] {0, 0, 0, 1, 0}, new float[] {0, 0, 0, 0, 1} }); // 画像属性を作成 ImageAttributes attributes = new ImageAttributes(); attributes.SetColorMatrix(colorMatrix); // マスク画像に透明部分以外を黒に設定 g.DrawImage(maskBmp, new Rectangle(0, 0, maskBmp.Width, maskBmp.Height), 0, 0, askBmp.Width, maskBmp.Height, GraphicsUnit.Pixel, attributes); } // 結果画像を作成(元画像にマスク画像を重ねる) Bitmap resultBmp = new Bitmap(bmp.Width, bmp.Height, PixelFormat.Format32bppArgb); using (Graphics g = Graphics.FromImage(resultBmp)) { // 元の画像を描画 g.DrawImage(bmp, 0, 0); // マスク画像を重ねる g.DrawImage(maskBmp, 0, 0); } // PictureBoxに結果画像を表示 pictureBox1.Image = resultBmp; }
ご返信ありがとうございます。画像のアップ方法を間違ってました。 このように背景に文字がまぎれるので、OCRが失敗しやすいです。
なるほど、すでに検討されてたのですね。処理が激重になるとのことでなるほど、理解できます。なんとかできないものかなぁと思い、chatGPTで調査してみたところ、以下のような方法がどうかなと思いました。
文字部分の色(範囲指定無し)を透明色に変換したあと、画像の明度、彩度を0に変換します。その画像をマスクとして、元画像の上にマスク画像を重ねることで、背景のみ黒に変換できそうかなと。 cahtGPTでソース(C#)を作成して動かしたところ、希望通りに動きました。ソースは部分抜粋ですが、次にあげます。
PCOTの開発言語が何か不明ですが、同じようなことができれば処理時間も短くて実現できないかなと思った次第です。 あくまでアイデアとしてご検討いただければ、との思いでおります。 もしこの書き込みに不快な思いをされたようでしたら削除してください。 よろしくお願いします。
PCOTをご使用いただき、ありがとうございます。 ご要望についてですが、画像が添付されていないので具体的にどうしたいのかはちょっと分かりませんが、色置換の逆は実は前にやろうとしたことがあるんです。 安直に「逆色置換」と呼んでましたが、結果から言うと無理でした。
理由として、0(完全一致)を設定した場合は問題なく上手く行くんです。
下記の引用の通り
-10に設定した場合は、色の近似範囲10から外れるものが変換対象になる
これを実装した途端、凄まじく処理が重くなってしまい、実用的な速度での置換が不可能でした。組み方が不味いのかもしれませんが、少なくともアルゴリズム的に今やっている色置換の判定を反転させるだけでは、上手くいきません。
恐らく処理が重くなる理由は置換する色が多すぎるせいだと思われるので、高精度に256色程度まで減色した画像であれば、上手く行く可能性があります。
高精度に色を減色するサンプルは前に見つけたのですが、かなり複雑な画像処理を行う必要があるので直ぐに対応するのは不可能です。
ただ、仰る要望は前々からやりたいとは思っているので今後もトライはして行こうと思います。
以上、ご理解いただけますと幸いです。
補足、「-1が不一致のもの」としましたが、-1~-100で範囲指定でもいいかもと思いました。-10に設定した場合は、色の近似範囲10から外れるものが変換対象になる、というのをイメージしています。ご検討のほど、よろしくお願いします。
お世話になります。 画像加工&OCR読み取り設定について要望です。 現状「指定した色」を置換することができるのですが、「指定した色以外」を置換することができるといいなと思いました。使用中のゲームでは添付のように背景に文字がまぎれるため、OCRがうまくできません。夜になり、背景が真っ暗だとOCRができます。なので、指定した色以外を変換できるオプションがあるとOCRができそうに思います。 添付画像では ①橙色を範囲100で橙色に変更 ②白を範囲100で橙色に変更 ③橙色以外をすべて黒に変更 という風に処理を重ねるといけそうに想像してます。
0が完全一致なので、-1が不一致のもの、というような感じだとUI変更も少なくて済みそうに思いますが。 ご検討のほど、よろしくお願いします。
ご愁傷様です・・・
断定はできませんが、dataフォルダとocrsetフォルダの二つを削除して頂くことで復帰できる可能性はあります。特にdataフォルダの中には色んな設定ファイルがあるので、壊れた設定ファイルを特定するのは困難です。 dataフォルダ内の[プロセス名].cfgファイルとocrsetフォルダ内の[プロセス名].ocrファイルは連動しているので、dataフォルダを削除する場合は、必ずocrsetフォルダも併せて削除してください。 履歴登録を行っている場合はhistoryフォルダも削除してください。
最悪それでもダメな場合は新しくDLして頂く他ありません。 無事復帰できることをお祈りしています。
当方も同じ現象に遭遇し、ここにたどり着いた
・標記エラーが発生する場合、破損しているのは設定フォルダの内容であり、それ以外のファイルが破損している可能性は低い ・設定情報をリセットしても構わない場合は、設定フォルダの削除で復帰できる って事ですかね?
再インストールするとWindowsのセキュリティ解除の方が面倒で・・・
はじめまして。PCOTをご使用いただき、ありがとうございます。
お問い合わせの件に関してですが、ご推察のとおり英日以外は言語の混在に対応していません。
まず、先に言語を指定する特性上、どの言語をどう組み合わせるかという問題があります。それと、言語を複数指定した場合は、言語を単発で指定した場合に比べて明らかに読取精度が落ちます。 例えば韓国語のみの文章を読もうとしたときに、日本語+韓国語で指定すると、韓国語の中の日本語っぽい表記を無理やり拾って、原文の中に意味不明な日本語が混じる事態になります(これは既に実装済みの英日でも同様の事が起きます)
一番良い解決方法は有料になってしまいますが、Google Cloud Vision APIを導入して、Google OCRを利用することです。 こちらは、特に言語を指定する必要がないのと、多種多様な言語の混在にも対応していますし、読取精度も既存のOCRとは一線を画す性能を持っています。
以上、あまり答えらしい答えになっていませんが、参考にしていただければ幸いです。
おぉ、勘違いでしたか。問題が解決したようで何よりです。
画像翻訳はプロローグなど、勝手に字幕が流れてしまうようなものを画像ファイルとして保存して、任意のタイミングで翻訳する為の機能です。
PCOTにしかない機能なので、常用しないと中々慣れませんが使いこなせば便利なので、頭の隅にでも覚えておいて頂けると幸いです。
すみません。上記問い合わせに関しては完全にこちらの勘違いでした。
「フリー選択」の機能を使いたいところを途中から「画像翻訳」だと思い込んで間違って使用しておりました。
ご対応いただきありがとうございました。
PCOTのご利用ありがとうございます。
お問合せの件についてですが、色々試してみても残念ながら再現できません。
「範囲選択時」とあるので、画像ファイルは然るべき場所に存在するということですよね?
途中まで普通に使えていたとの事なので、設定ファイルが壊れたのかもと思いましたが画像翻訳で画像ファイルに対して何かする設定はない筈(パスを見てるだけ)なので、パスの参照が上手くいかない原因がないかを確認して頂きたいです。
具体的には下記に挙げた確認項目を確認して頂きたいです。
実行ファイルからの相対パスでパス参照している為、コンソールから起動すると作業フォルダが変わってしまうため、正しくパス参照ができません
「Program Files」等のフォルダに置くと、権限の問題でファイルを正しく読み書きできない可能性があります
ざっと思い浮かぶのはこの辺りですが、設定ファイルが壊れているのが原因である可能性もあります。
再インストールは既に試されたとのことですが、上記のリストの確認に加え、HPからPCOTをダウンロード&展開し、真っ新な状態で実行した上で新しく画像をキャプチャーしても同様のエラーが発生するかも確認して頂きたいです。
お手数をおかけしますが、提示した確認方法を試した後にもう一度結果を報告して頂けると助かります。
画像翻訳時に範囲を選択したときに下記エラーが発生します。
「image[プロセス名]内に画像ファイルが存在しません。」
特定のプロセスだけではなくすべてのプロセスにて表示されます。
インストールしてすぐは問題なく普通に使用できていましたが、途中から出てき始めました。
※再インストールは試してみましたが、効果はありませんでした。
ご回答お願い致します。
改めて試したところ、ちゃんと読めるようになったので設定方法をご案内させていただきます。環境によってそのままでは使えない可能性があるので、適宜調整してください。
方法として、PCOTの画像加工機能を利用します。
1.画面上部メニューの設定→画像加工&OCR読取設定で画像加工画面を開きます。
2.添付した画像の通りに画像加工を行い、OCRテストで読取確認を行った後、保存ボタンを押して設定を保存します。
設定画像

以下に細かい設定と注意点を記載します。
【設定方法】
1.描画補間法「高品質双三次」を追加
2.彩度「10」を追加
3.彩度「5.2」を追加
4.グレースケール「八値」を追加
5.ノイズになっている部分を色置換で背景色に置換
【注意点】
・OCR読取設定にある倍率項目の「加工前に適用」に必ずチェックを入れる
・画面左上の「設定選択」で専用のプリセットを作成することを推奨します(他のゲームでも上記の画像加工が適用されてしまうため)
以上、参考になれば幸いです。
また、画像加工はとても複雑な機能なので、使い方が分からない場合は気軽にお問い合わせください。
外出から帰って早速試してみました。
結論から言うと、難しそうです・・・。
理由は下部の画像の通り、白い文字を拡大すると白の単色ではなく、複雑な中間色があるため、画像加工で色を置換しようとしても、背景色と近すぎて背景色も文字色として巻き込んで置換されてしまう為です。
現在、画像加工の機能強化を模索していますので、それによって改善される可能性はありますが、保証はできません。
お役に立てず誠に申し訳ないのですが、何卒ご了承頂きたいです。
代筆ありがとうございました!
帰ったので、回答を引き継ぎます。
こんばんわ。PCOT作者さんの知人です。作者さん今長期旅行中でなぜか出先から掲示板に書き込めないそうです。作者さんが旅行から帰られるまで待っていただけるとありがたいですが、お急ぎでしょうか?
画像が添付できていませんでした、すみません。
コメント失礼致します。
現在PCOTを利用してゲームを遊んでいるのですが、一部で画像上のように翻訳したい文章の背景に文字が流れてくるため、うまく翻訳が行えません。
こういった場合はどのように設定を変えると背景の文字を読み込まず翻訳が行えるのでしょうか?
初歩的なことで申し訳ないのですが、ご教授願います。
PCOTをご利用いただきありがとうございます。
昔のゲームではフルスクリーンしか存在せず「Alt+Enter」でも反応しないゲームも確かにありますが、その場合は窓化ツールなどを利用できるかもしれません。
海外のインディーゲームをプレイするときだいたい日本語化がないのでPCOTを見つけられてよかった

フルスクリーンのゲームでも「Alt+Enter」でウィンドウ化すれば機能する、かも?
こちらこそ、PCOTを見つけてくださってありがとうございます!
PCOTがじごちゃん様の配信でお役に立てるよう願っています!
こんなソフトがあったとは感激です!
実はYouTubeのゲーム実況で使用させていただく予定です。
ありがたく使用させていただきます!!
ご報告ありがとうございます。
PCOTが配信のお役に立てるよう願っております!
英語が苦手なので、本日英語のGAME配信で使用させて頂きます
対応頂きありがとうございます、難なくDLすることが出来ました!
ご対応ありがとうございます!
GoogleDrive上からダウンロードでき利用することができました。お早い対応ありがとうございました!
PCOTをDLできないと報告してくださった方々へ
原因はさっぱり見当がつきませんが、対応策としてOneDriveの共有リンクを取得し直してみました。
お手数ですが、もう一度試して頂いてもよろしいでしょうか?
これでダメな場合はE様が報告して頂いた通り、OneDriveの障害の可能性が高いです。
その場合はGoogleDriveに置き直すなど、対策を講じたいと思います。
追記
Xにてフォロワーさんに色々試して頂いた結果「他のファイルはDL出来る」との報告を頂いたので、もしかしたらPCOTがOneDriveにウイルス認定されている可能性があります。
一旦GoogleDriveに置き直したので、ダメだった方は再度試して頂きたいです。
↑と同じ現象です。
ファイル名のところにカーソルを合わせると「PCOT.ZIP ブロック」と表示されます。
OneDriveの障害でしょうか?
https://news.yahoo.co.jp/articles/9965a4d3aa9c846fc69fa71c8c2be3eca5adda97
PCOTをダウンロードしようとしたところダウンロードできませんでした(同じOneDriveにアップロードされているSWFRはダウンロードできました)
環境
操作
DLボタン→OneDriveの画面でダウンロードボタンをクリック→OneDriveへのログイン画面が表示される→適切なユーザーとパスワードを入力する→リダイレクトのような処理(?)が実行されるもログインできずエラー画面が表示される(※添付ファイル参照)
PCOTはダウンロードできていません
補足
同じアカウントでOneDriveのサービスにはログインできることは確認しています
追記です
フォルダ一覧のPCOT.zipフォルダの横部分には、◯に-が入った様なアイコンが表示されています
ダウンロードを押すとエラーファイルが入ったものがDLされます
はい、その理解大丈夫です。
私はPG構造を知らないので目的のことがもっと簡単にできるのであればその手段のほうが適切だと思います。エンドユーザーにとってPG構造は意識するところではなく、使い勝手がすべてですので。
「色1以外を色2に置換」 この表現はいいですね。ユーザーにとってより理解しやすいと思います。
実装を楽しみにしております。
重ねてご提案を頂き、ありがとうございます。
理解として正しいかどうかちょっと不安ですが・・・
1.現行のPCOTにある色置換で文字色を単色にする(アンチエイリアスを潰す)
2.単色にした文字色のマスクを作成
3.背景を黒にする
という理解で合っていますか?
単色以外を置換する方法であれば、今のアルゴリズムで判定を反転させるだけでも十分実用的な速度になると思います。
単色+色距離(10~100)とすると、凄まじく重くなるのが問題です。
単色以外を置換で機能的に必要十分ということであれば「色1以外を色2に置換」の方が文字色を判定する必要がないので、実装する私も使用するはまさんも楽だと思うのですが、いかがでしょうか?
ちょっと補足すると、文字部分を透明にしたのはRGB値ではなくアルファチャンネルの値によるものです。
>(2)wkBmpの画像全体について、彩度を0にして真っ黒にする。真っ黒にしたとしても、文字部分は透明のまま。
RGBカラーとしては全部真っ黒なんですけど、文字(橙色)部分はアルファチャンネルによって透明になるので、画像を重ねたときに文字部分がちゃんと見えるということになると思います。
③橙色以外を黒に変換
の部分は「画像加工&OCR読み取り設定」にて「文字色以外は消去」という選択項目を追加します。
文字色を指定(画像から色を抽出)させて追加ボタンを押させる形なので、既存のUIを踏襲できると思います。
// 画像属性を作成
ImageAttributes attributes = new ImageAttributes();
attributes.SetColorMatrix(colorMatrix);
// マスク画像に透明部分以外を黒(or赤)に設定
g.DrawImage(maskBmp, new Rectangle(0, 0, maskBmp.Width, maskBmp.Height), 0, 0, maskBmp.Width, maskBmp.Height, GraphicsUnit.Pixel, attributes);
}
// 結果画像を作成(元画像にマスク画像を重ねる)
Bitmap resultBmp = new Bitmap(wkBmp.Width, wkBmp.Height, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(resultBmp))
{
// オリジナル画像のロード
Bitmap orgBmp = new Bitmap("D:\work\test2.png");
// オリジナル画像を描画
g.DrawImage(orgBmp, 0, 0);
// マスク画像を重ねる(橙文字部分が透明、その他の背景部分は黒(or赤)に変換済み)
g.DrawImage(maskBmp, 0, 0);
}
// PictureBoxに結果画像を表示
pictureBox1.Image = resultBmp;
}
private void button1_Click(object sender, EventArgs e)
{
// 画像のロード
Bitmap wkBmp = new Bitmap("D:\work\test2.png");
// 指定する色を透明に設定
Color targetColor = Color.FromArgb(255, 136, 0); // 例: 橙色を透明にする
wkBmp.MakeTransparent(targetColor);
// マスク用画像オブジェクトを作成(PixelFormat.Format32bppArgbを使用)
Bitmap maskBmp = new Bitmap(wkBmp.Width, wkBmp.Height, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(maskBmp))
{
// 元の画像(橙文字部分が透明)を描画する
g.DrawImage(wkBmp, 0, 0);
// 彩度を0にするColorMatrixを作成
ColorMatrix colorMatrix = new ColorMatrix(
new float[][]
{
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1}
});
//もし文字色が黒なら、背景は赤色にする。
if (false)
{
colorMatrix = new ColorMatrix(
new float[][]
{
new float[] { 1, 0, 0, 0, 0 },
new float[] { 0, 0, 0, 0, 0 },
new float[] { 0, 0, 0, 0, 0 },
new float[] { 0, 0, 0, 1, 0 },
new float[] { 1, 0, 0, 0, 1 }
});
}
ご返信、ありがとうございます。ご検討いただけてうれしいです。

>白色部分はアンチエイリアスの影響で単色ではないように思います
はい、なのでPCOTの「画像加工&OCR読み取り設定」を使ってアンチエイリアス部を変換します。
①橙色(画面から取得)を範囲100で橙色に変更
②白(画面から取得)を範囲100で橙色に変更
これにより文字をすべて橙色に変換した結果がこんな感じです。
この画像(ハードコピーしたpng)に対してサンプルソースで

③橙色以外を黒に変換
という処理を重ねた結果が以下画像になります。
この画像をPCOTで翻訳すると以下のようになりました。

こんな感じで実用性はありそうに感じています。
前に書いたソースは文字部分が白になっているので、部分修正と補足説明を追加したものを次にアップしますが、処理の概要としてはいかになります。
(1)オリジナル画像(orgBmp)の文字部分(橙色)を透明にしたものをwkBmpに格納する。
(2)wkBmpの画像全体について、彩度を0にして真っ黒にする。真っ黒にしたとしても、文字部分は透明のまま。
(3)オリジナル画像(orgBmp:変換前のもの)にwkBmpを重ねると、文字部分のみが透明なので、文字部分は橙色として見えるがその他の部分はwkBmpの黒が上書きされている。
というイメージです。
今回作っているのは文字部分が橙色のため「橙色以外を彩度0(真っ黒)に変換する」でよいのですが、文字色が黒だとこれではだめです。その対策のため、ソースに「文字色が黒なら背景は赤色にする」というサンプルを入れております。文字色が黒なら、という判定はif(false)になっているので、ここは修正ください。
処理のご提案ありがとうございます。
画像を拝見しました。
なるほど、これはネイティブの人でも読み辛そうですね・・・。
いくつか質問させてください。
こちらで前に試した時は前に書いた通り、巻き込む色を増やすと激重になりました。
そして、添付された画像を見る限り、白色部分はアンチエイリアスの影響で単色ではないように思います。
貼って頂いたソースでは、マスクしている色、即ち「targetColor」は白の単色(255,255,255)ですが、これはちゃんと動作するのでしょうか?
巻き込む色を全てマスクする場合、重くなるのではないかと懸念しています。
ご提示頂いたソースでは彩度を0(黒)にしていますが、これは色置換の逆ではなく処理としては「指定した色以外を全て黒色に置換する」となっています。
仮に黒色(またはそれに近しい色)をマスクした時、彩度を0にする方法だと処理後の画像は真っ黒になりそうな気がします。
これについて何か解決方法はありますか?
最後に、PCOTはC#で組んでいるのでご提示頂いたソースはそのまま流用可能です。
ありがとうございます。
書き込みに関しては全く不快だとは思いません。解決方法までご提示頂けて感謝の気持ちで一杯です。
PCOTは当初自分で使う目的で突貫工事で作ったツールで、大半は一人であれこれ悩んで実装してきたので、こうしてコードベースで一緒に考えてくれる人がいるのは大変心強いです。
private void button1_Click(object sender, EventArgs e)
{
// 画像のロード
Bitmap bmp = new Bitmap("path_to_your_image.bmp");
// 指定する色を透明に設定
Color targetColor = Color.White; // 例: 白色を透明にする
bmp.MakeTransparent(targetColor);
// マスク画像を作成(PixelFormat.Format32bppArgbを使用)
Bitmap maskBmp = new Bitmap(bmp.Width, bmp.Height, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(maskBmp))
{
// 元の画像を描画する
g.DrawImage(bmp, 0, 0);
// 彩度を0にするColorMatrixを作成
ColorMatrix colorMatrix = new ColorMatrix(
new float[][]
{
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1}
});
// 画像属性を作成
ImageAttributes attributes = new ImageAttributes();
attributes.SetColorMatrix(colorMatrix);
// マスク画像に透明部分以外を黒に設定
g.DrawImage(maskBmp, new Rectangle(0, 0, maskBmp.Width, maskBmp.Height), 0, 0, askBmp.Width, maskBmp.Height, GraphicsUnit.Pixel, attributes);
}
// 結果画像を作成(元画像にマスク画像を重ねる)
Bitmap resultBmp = new Bitmap(bmp.Width, bmp.Height, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(resultBmp))
{
// 元の画像を描画
g.DrawImage(bmp, 0, 0);
// マスク画像を重ねる
g.DrawImage(maskBmp, 0, 0);
}
// PictureBoxに結果画像を表示
pictureBox1.Image = resultBmp;
}
ご返信ありがとうございます。画像のアップ方法を間違ってました。

このように背景に文字がまぎれるので、OCRが失敗しやすいです。
なるほど、すでに検討されてたのですね。処理が激重になるとのことでなるほど、理解できます。なんとかできないものかなぁと思い、chatGPTで調査してみたところ、以下のような方法がどうかなと思いました。
文字部分の色(範囲指定無し)を透明色に変換したあと、画像の明度、彩度を0に変換します。その画像をマスクとして、元画像の上にマスク画像を重ねることで、背景のみ黒に変換できそうかなと。
cahtGPTでソース(C#)を作成して動かしたところ、希望通りに動きました。ソースは部分抜粋ですが、次にあげます。
PCOTの開発言語が何か不明ですが、同じようなことができれば処理時間も短くて実現できないかなと思った次第です。
あくまでアイデアとしてご検討いただければ、との思いでおります。
もしこの書き込みに不快な思いをされたようでしたら削除してください。
よろしくお願いします。
PCOTをご使用いただき、ありがとうございます。
ご要望についてですが、画像が添付されていないので具体的にどうしたいのかはちょっと分かりませんが、色置換の逆は実は前にやろうとしたことがあるんです。
安直に「逆色置換」と呼んでましたが、結果から言うと無理でした。
理由として、0(完全一致)を設定した場合は問題なく上手く行くんです。
下記の引用の通り
これを実装した途端、凄まじく処理が重くなってしまい、実用的な速度での置換が不可能でした。組み方が不味いのかもしれませんが、少なくともアルゴリズム的に今やっている色置換の判定を反転させるだけでは、上手くいきません。
恐らく処理が重くなる理由は置換する色が多すぎるせいだと思われるので、高精度に256色程度まで減色した画像であれば、上手く行く可能性があります。
高精度に色を減色するサンプルは前に見つけたのですが、かなり複雑な画像処理を行う必要があるので直ぐに対応するのは不可能です。
ただ、仰る要望は前々からやりたいとは思っているので今後もトライはして行こうと思います。
以上、ご理解いただけますと幸いです。
補足、「-1が不一致のもの」としましたが、-1~-100で範囲指定でもいいかもと思いました。-10に設定した場合は、色の近似範囲10から外れるものが変換対象になる、というのをイメージしています。ご検討のほど、よろしくお願いします。
お世話になります。
画像加工&OCR読み取り設定について要望です。
現状「指定した色」を置換することができるのですが、「指定した色以外」を置換することができるといいなと思いました。使用中のゲームでは添付のように背景に文字がまぎれるため、OCRがうまくできません。夜になり、背景が真っ暗だとOCRができます。なので、指定した色以外を変換できるオプションがあるとOCRができそうに思います。
添付画像では
①橙色を範囲100で橙色に変更
②白を範囲100で橙色に変更
③橙色以外をすべて黒に変更
という風に処理を重ねるといけそうに想像してます。
0が完全一致なので、-1が不一致のもの、というような感じだとUI変更も少なくて済みそうに思いますが。
ご検討のほど、よろしくお願いします。
ご愁傷様です・・・
断定はできませんが、dataフォルダとocrsetフォルダの二つを削除して頂くことで復帰できる可能性はあります。特にdataフォルダの中には色んな設定ファイルがあるので、壊れた設定ファイルを特定するのは困難です。
dataフォルダ内の[プロセス名].cfgファイルとocrsetフォルダ内の[プロセス名].ocrファイルは連動しているので、dataフォルダを削除する場合は、必ずocrsetフォルダも併せて削除してください。
履歴登録を行っている場合はhistoryフォルダも削除してください。
最悪それでもダメな場合は新しくDLして頂く他ありません。
無事復帰できることをお祈りしています。
当方も同じ現象に遭遇し、ここにたどり着いた
・標記エラーが発生する場合、破損しているのは設定フォルダの内容であり、それ以外のファイルが破損している可能性は低い
・設定情報をリセットしても構わない場合は、設定フォルダの削除で復帰できる
って事ですかね?
再インストールするとWindowsのセキュリティ解除の方が面倒で・・・
はじめまして。PCOTをご使用いただき、ありがとうございます。
お問い合わせの件に関してですが、ご推察のとおり英日以外は言語の混在に対応していません。
まず、先に言語を指定する特性上、どの言語をどう組み合わせるかという問題があります。それと、言語を複数指定した場合は、言語を単発で指定した場合に比べて明らかに読取精度が落ちます。
例えば韓国語のみの文章を読もうとしたときに、日本語+韓国語で指定すると、韓国語の中の日本語っぽい表記を無理やり拾って、原文の中に意味不明な日本語が混じる事態になります(これは既に実装済みの英日でも同様の事が起きます)
一番良い解決方法は有料になってしまいますが、Google Cloud Vision APIを導入して、Google OCRを利用することです。
こちらは、特に言語を指定する必要がないのと、多種多様な言語の混在にも対応していますし、読取精度も既存のOCRとは一線を画す性能を持っています。
以上、あまり答えらしい答えになっていませんが、参考にしていただければ幸いです。