PCOT関連の掲示板

761 件中 81 から 120 までを表示しています。
707

すみません解決しました。

706

該当アプリの座標及びサイズ取得に失敗しましたと出るんですがどうすればいいですか?

705
ぬるっぽ 2024/10/22 (火) 19:01:03

PCOTを更新しました。v1.7.6

更新項目を以下に列挙します。

  • 利用ライブラリのセキュリティーの脆弱性に伴う更新を適用
  • リソースファイルからGoogle OCRテスト用画像を削除
  • 隠し機能の処理を独立して機能するように修正
  • 画像加工画面のレイアウトを微修正
  • 画像メモのエディターの余白を10pxに変更
  • 子画面表示フラグを操作ロックフラグに変更し、翻訳表示画面以外からも参照できるように修正
  • みんなの自動翻訳利用可能フラグを翻訳表示画面以外からも参照できるように修正
  • 翻訳表示画面の上部メニュー「ツール」にクリップボード監視チェックを追加
  • 辞書置換と名詞置換を共通部品化し、翻訳表示画面以外からも実行できるように修正
  • 翻訳エンジンでみんなの自動翻訳を選択してPCOTを終了させるとGoogle翻訳になってしまう不具合を修正
  • Google翻訳と隠し機能の翻訳で引数から翻訳先言語を除外し、共通参照できるように修正
  • WinAPIで対象画面を強制的にアクティブ化するメソッドを追加
  • バージョンアップに伴う設定ファイルの同期処理の不具合を修正
  • フォント設定でフォントの設定後、文字色をカラーダイアログから設定できるように修正
  • クリップボード監視機能追加

注意:既存のPCOTを利用している方へ

今回は実行ファイル以外にも多数のファイルを更新しています。
特にライブラリのセキュリティーの脆弱性に伴う更新が含まれるため「PCOTの更新方法.txt」にある「確実な方法」で更新してください。

また、ライブラリの更新でTesseract OCRが5.2から5.3にアップグレードされました。
以前よりも読取精度、速度などが向上しているかもしれません。していないかもしれません。

新機能:クリップボード監視(通称:Ren’Pyモード)について

例によって資料を作成しました。

資料1/2
画像1

資料2/2
画像1

最後に

今回の新機能であるクリップボード監視機能は以前私がX上で「Ren’Py製のゲームを快適に遊ぶ方法」としてVNTranslatorというツールを利用する方法を紹介した方法と基本的に同じ仕組みで動作します。

参考にさせて頂いたVNTranslatorの配布ページはこちら
https://docs.vntranslator.com/

Ren’Pyエンジンに関する様々な情報を提供してくださった
ty様が作成したゲームはこちら(PCOTの動作検証でお世話になりました)
https://p6ik.itch.io/amayadoru

上記の方々によって新たな機能を実装することができました!
この場を借りてお礼申し上げます。

704

そうなんですね。ありがとうございます!

703
ぬるっぽ 2024/10/05 (土) 09:40:36 >> 702

PCOTをご利用いただきありがとうございます。
お問合せの件ですが、結論から言うと現行の連続翻訳はON/OFFの切り替えしか用意していません。

ON/OFF動作は確かに誤爆して「PCOTが壊れた!」とちょくちょく報告が上がるので、私も今の仕様が最善とは思ってはいないのですが、連続翻訳を使いたい場面はフリー選択だけではなく、固定翻訳や画像翻訳でも使う機会があるのです。
ご提案の方法だと、連続翻訳有効フリー選択の他に連続固定翻訳のショートカットが必要になってしまいます。それも各固定翻訳に一つ付く形になるので、かなり冗長になってしまいます。

やるとしたら今の仕様を残しつつ、フリー選択だけはご提案頂いた方法で動作させるという感じになると思いますが・・・かなり複雑で混乱しそうです。
何かいい案があれば是非ご提案頂けると助かります。

702
DSSSM 2024/10/04 (金) 18:40:59 02183@0de81

大変便利に使わせてもらってます!
ショートカット設定の「連続翻訳有効/無効」キーなのですが、有効/無効を切り替えるよりも、普段使っている「フリー選択」の他に「連続翻訳有効フリー選択」というようなショートカット設定ができるようになってくれると、大変ありがたいです。あるいは、すでにそのようなことが可能になる方法がありますでしょうか?

701
ぬるっぽ 2024/09/20 (金) 23:31:39 修正

PCOTを更新しました。v1.7.5

更新項目を以下に列挙します。

・セキュリティー上脆弱性のあるライブラリを更新
・画像加工で表の画像加工種別名を右クリックしてもパラメータを変更できるように修正
・画像加工にガンマ補正を追加

既存のPCOTを利用している方へ

今回は利用しているライブラリのセキュリティー対策のため、実行ファイル以外のファイルも更新しています。
更新する場合はPCOTに同梱している「PCOTの更新方法.txt」内にある「確実な方法」で更新してください。

私信:はま様
ご要望頂いた「色1以外を色2に置換」の処理ですが、巻き込む色を指定させない完全一致の場合、通常の色置換と機能が非対称になり混乱するため、実装を見送りました。
その代わり、「ガンマ補正」という加工方法を追加しました。
使ってみた感じ、ご要望頂いた機能の代替になると思われますので、一度試して頂きたいです。

最後に、大分時間がかかった上にご希望に添えず、誠に申し訳ないのですが、何卒ご理解頂きたいです。

700
ぬるっぽ 2024/09/19 (木) 02:34:30 >> 698

おぉ、勘違いでしたか。問題が解決したようで何よりです。
画像翻訳はプロローグなど、勝手に字幕が流れてしまうようなものを画像ファイルとして保存して、任意のタイミングで翻訳する為の機能です。
PCOTにしかない機能なので、常用しないと中々慣れませんが使いこなせば便利なので、頭の隅にでも覚えておいて頂けると幸いです。

699

すみません。上記問い合わせに関しては完全にこちらの勘違いでした。
「フリー選択」の機能を使いたいところを途中から「画像翻訳」だと思い込んで間違って使用しておりました。
ご対応いただきありがとうございました。

698
ぬるっぽ 2024/09/18 (水) 11:20:40 >> 697

PCOTのご利用ありがとうございます。
お問合せの件についてですが、色々試してみても残念ながら再現できません。
「範囲選択時」とあるので、画像ファイルは然るべき場所に存在するということですよね?

途中まで普通に使えていたとの事なので、設定ファイルが壊れたのかもと思いましたが画像翻訳で画像ファイルに対して何かする設定はない筈(パスを見てるだけ)なので、パスの参照が上手くいかない原因がないかを確認して頂きたいです。

具体的には下記に挙げた確認項目を確認して頂きたいです。

  • 「PCOT\image[プロセス名][プロセス名]_[タイムスタンプ].png」という画像ファイルが物理的に存在するか
  • PCOTをコンソールからコマンドラインで実行していないか
    実行ファイルからの相対パスでパス参照している為、コンソールから起動すると作業フォルダが変わってしまうため、正しくパス参照ができません
  • PCOTを特殊なフォルダに置いていないか
    「Program Files」等のフォルダに置くと、権限の問題でファイルを正しく読み書きできない可能性があります

ざっと思い浮かぶのはこの辺りですが、設定ファイルが壊れているのが原因である可能性もあります。
再インストールは既に試されたとのことですが、上記のリストの確認に加え、HPからPCOTをダウンロード&展開し、真っ新な状態で実行した上で新しく画像をキャプチャーしても同様のエラーが発生するかも確認して頂きたいです。

お手数をおかけしますが、提示した確認方法を試した後にもう一度結果を報告して頂けると助かります。

697

画像翻訳時に範囲を選択したときに下記エラーが発生します。
「image[プロセス名]内に画像ファイルが存在しません。」

特定のプロセスだけではなくすべてのプロセスにて表示されます。
インストールしてすぐは問題なく普通に使用できていましたが、途中から出てき始めました。

※再インストールは試してみましたが、効果はありませんでした。
ご回答お願い致します。

696
ぬるっぽ 2024/08/28 (水) 22:18:31 >> 691

改めて試したところ、ちゃんと読めるようになったので設定方法をご案内させていただきます。環境によってそのままでは使えない可能性があるので、適宜調整してください。

方法として、PCOTの画像加工機能を利用します。
1.画面上部メニューの設定→画像加工&OCR読取設定で画像加工画面を開きます。
2.添付した画像の通りに画像加工を行い、OCRテストで読取確認を行った後、保存ボタンを押して設定を保存します。

設定画像
画像1

以下に細かい設定と注意点を記載します。

【設定方法】
1.描画補間法「高品質双三次」を追加
2.彩度「10」を追加
3.彩度「5.2」を追加
4.グレースケール「八値」を追加
5.ノイズになっている部分を色置換で背景色に置換

【注意点】
・OCR読取設定にある倍率項目の「加工前に適用」に必ずチェックを入れる
・画面左上の「設定選択」で専用のプリセットを作成することを推奨します(他のゲームでも上記の画像加工が適用されてしまうため)

以上、参考になれば幸いです。
また、画像加工はとても複雑な機能なので、使い方が分からない場合は気軽にお問い合わせください。

695
ぬるっぽ 2024/08/26 (月) 22:23:28 >> 692

外出から帰って早速試してみました。
結論から言うと、難しそうです・・・。

理由は下部の画像の通り、白い文字を拡大すると白の単色ではなく、複雑な中間色があるため、画像加工で色を置換しようとしても、背景色と近すぎて背景色も文字色として巻き込んで置換されてしまう為です。

画像1

現在、画像加工の機能強化を模索していますので、それによって改善される可能性はありますが、保証はできません。

お役に立てず誠に申し訳ないのですが、何卒ご了承頂きたいです。

694
ぬるっぽ 2024/08/26 (月) 22:10:11 >> 693

代筆ありがとうございました!
帰ったので、回答を引き継ぎます。

693
てばさき 2024/08/26 (月) 01:44:52 227bc@69c8c

こんばんわ。PCOT作者さんの知人です。作者さん今長期旅行中でなぜか出先から掲示板に書き込めないそうです。作者さんが旅行から帰られるまで待っていただけるとありがたいですが、お急ぎでしょうか?

692
カニ吉大好き 2024/08/24 (土) 16:27:35 3a2f0@77ae7 >> 691

画像1
画像が添付できていませんでした、すみません。

691
カニ吉大好き 2024/08/24 (土) 16:25:27 3a2f0@77ae7

コメント失礼致します。
現在PCOTを利用してゲームを遊んでいるのですが、一部で画像上のように翻訳したい文章の背景に文字が流れてくるため、うまく翻訳が行えません。
こういった場合はどのように設定を変えると背景の文字を読み込まず翻訳が行えるのでしょうか?
初歩的なことで申し訳ないのですが、ご教授願います。

690
ぬるっぽ 2024/08/15 (木) 09:41:12 >> 689

PCOTをご利用いただきありがとうございます。
昔のゲームではフルスクリーンしか存在せず「Alt+Enter」でも反応しないゲームも確かにありますが、その場合は窓化ツールなどを利用できるかもしれません。

689
Lia12021 2024/08/15 (木) 08:24:04 32e0a@f840d

海外のインディーゲームをプレイするときだいたい日本語化がないのでPCOTを見つけられてよかった 😊
フルスクリーンのゲームでも「Alt+Enter」でウィンドウ化すれば機能する、かも? 🧐

688
ぬるっぽ 2024/08/12 (月) 04:26:02 >> 687

こちらこそ、PCOTを見つけてくださってありがとうございます!
PCOTがじごちゃん様の配信でお役に立てるよう願っています!

687
じごちゃん 2024/08/11 (日) 22:25:10 22310@be93c

こんなソフトがあったとは感激です!
実はYouTubeのゲーム実況で使用させていただく予定です。
ありがたく使用させていただきます!!😆

686
ぬるっぽ 2024/08/04 (日) 01:39:22 >> 685

ご報告ありがとうございます。
PCOTが配信のお役に立てるよう願っております!

685
NeoArkVTuber 2024/08/03 (土) 16:29:19 b9e61@193d1

英語が苦手なので、本日英語のGAME配信で使用させて頂きます

684
だだ 2024/07/24 (水) 08:47:28 7d344@306e6

対応頂きありがとうございます、難なくDLすることが出来ました!

683

ご対応ありがとうございます!

682

GoogleDrive上からダウンロードでき利用することができました。お早い対応ありがとうございました!

681
ぬるっぽ 2024/07/20 (土) 15:22:56 修正

PCOTをDLできないと報告してくださった方々へ

原因はさっぱり見当がつきませんが、対応策としてOneDriveの共有リンクを取得し直してみました。

お手数ですが、もう一度試して頂いてもよろしいでしょうか?
これでダメな場合はE様が報告して頂いた通り、OneDriveの障害の可能性が高いです。
その場合はGoogleDriveに置き直すなど、対策を講じたいと思います。

追記

Xにてフォロワーさんに色々試して頂いた結果「他のファイルはDL出来る」との報告を頂いたので、もしかしたらPCOTがOneDriveにウイルス認定されている可能性があります。
一旦GoogleDriveに置き直したので、ダメだった方は再度試して頂きたいです。

680
E 2024/07/20 (土) 12:06:59 修正 8bbd3@fc9cc >> 679

↑と同じ現象です。
ファイル名のところにカーソルを合わせると「PCOT.ZIP ブロック」と表示されます。画像1

OneDriveの障害でしょうか?
https://news.yahoo.co.jp/articles/9965a4d3aa9c846fc69fa71c8c2be3eca5adda97

679
よう 2024/07/20 (土) 08:27:57 299a3@e5d21

PCOTをダウンロードしようとしたところダウンロードできませんでした(同じOneDriveにアップロードされているSWFRはダウンロードできました)

環境

  • OS:Windows、Mac(両方で試してみました)
  • ブラウザ:Chrome、Edge(両方で試してみました)
    • キャッシュクリアなどもしてみました

操作

DLボタン→OneDriveの画面でダウンロードボタンをクリック→OneDriveへのログイン画面が表示される→適切なユーザーとパスワードを入力する→リダイレクトのような処理(?)が実行されるもログインできずエラー画面が表示される(※添付ファイル参照)

PCOTはダウンロードできていません

補足

同じアカウントでOneDriveのサービスにはログインできることは確認しています

画像1

678

追記です

フォルダ一覧のPCOT.zipフォルダの横部分には、◯に-が入った様なアイコンが表示されています

677
だだ 2024/07/20 (土) 08:04:38 1122f@306e6

ダウンロードを押すとエラーファイルが入ったものがDLされます

676

はい、その理解大丈夫です。
私はPG構造を知らないので目的のことがもっと簡単にできるのであればその手段のほうが適切だと思います。エンドユーザーにとってPG構造は意識するところではなく、使い勝手がすべてですので。
「色1以外を色2に置換」 この表現はいいですね。ユーザーにとってより理解しやすいと思います。
実装を楽しみにしております。

675
ぬるっぽ 2024/07/20 (土) 00:29:09 >> 672

重ねてご提案を頂き、ありがとうございます。

理解として正しいかどうかちょっと不安ですが・・・
1.現行のPCOTにある色置換で文字色を単色にする(アンチエイリアスを潰す)
2.単色にした文字色のマスクを作成
3.背景を黒にする
という理解で合っていますか?

単色以外を置換する方法であれば、今のアルゴリズムで判定を反転させるだけでも十分実用的な速度になると思います。
単色+色距離(10~100)とすると、凄まじく重くなるのが問題です。

単色以外を置換で機能的に必要十分ということであれば「色1以外を色2に置換」の方が文字色を判定する必要がないので、実装する私も使用するはまさんも楽だと思うのですが、いかがでしょうか?

674

ちょっと補足すると、文字部分を透明にしたのはRGB値ではなくアルファチャンネルの値によるものです。
>(2)wkBmpの画像全体について、彩度を0にして真っ黒にする。真っ黒にしたとしても、文字部分は透明のまま。
RGBカラーとしては全部真っ黒なんですけど、文字(橙色)部分はアルファチャンネルによって透明になるので、画像を重ねたときに文字部分がちゃんと見えるということになると思います。

673

③橙色以外を黒に変換
の部分は「画像加工&OCR読み取り設定」にて「文字色以外は消去」という選択項目を追加します。
文字色を指定(画像から色を抽出)させて追加ボタンを押させる形なので、既存のUIを踏襲できると思います。

672

// 画像属性を作成
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;
}

671
はま 2024/07/19 (金) 14:17:28 e9db9@c6453

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 }

});
}

670
はま 2024/07/19 (金) 14:12:53 e9db9@c6453

ご返信、ありがとうございます。ご検討いただけてうれしいです。
>白色部分はアンチエイリアスの影響で単色ではないように思います
はい、なのでPCOTの「画像加工&OCR読み取り設定」を使ってアンチエイリアス部を変換します。
①橙色(画面から取得)を範囲100で橙色に変更
②白(画面から取得)を範囲100で橙色に変更
これにより文字をすべて橙色に変換した結果がこんな感じです。
画像1

この画像(ハードコピーしたpng)に対してサンプルソースで
③橙色以外を黒に変換
という処理を重ねた結果が以下画像になります。
画像1

この画像をPCOTで翻訳すると以下のようになりました。
画像1
こんな感じで実用性はありそうに感じています。

前に書いたソースは文字部分が白になっているので、部分修正と補足説明を追加したものを次にアップしますが、処理の概要としてはいかになります。
(1)オリジナル画像(orgBmp)の文字部分(橙色)を透明にしたものをwkBmpに格納する。
(2)wkBmpの画像全体について、彩度を0にして真っ黒にする。真っ黒にしたとしても、文字部分は透明のまま。
(3)オリジナル画像(orgBmp:変換前のもの)にwkBmpを重ねると、文字部分のみが透明なので、文字部分は橙色として見えるがその他の部分はwkBmpの黒が上書きされている。
というイメージです。

今回作っているのは文字部分が橙色のため「橙色以外を彩度0(真っ黒)に変換する」でよいのですが、文字色が黒だとこれではだめです。その対策のため、ソースに「文字色が黒なら背景は赤色にする」というサンプルを入れております。文字色が黒なら、という判定はif(false)になっているので、ここは修正ください。

669
ぬるっぽ 2024/07/18 (木) 10:20:24 修正 >> 668

処理のご提案ありがとうございます。

画像を拝見しました。
なるほど、これはネイティブの人でも読み辛そうですね・・・。

いくつか質問させてください。

  • こちらで前に試した時は前に書いた通り、巻き込む色を増やすと激重になりました。
    そして、添付された画像を見る限り、白色部分はアンチエイリアスの影響で単色ではないように思います。
    貼って頂いたソースでは、マスクしている色、即ち「targetColor」は白の単色(255,255,255)ですが、これはちゃんと動作するのでしょうか?
    巻き込む色を全てマスクする場合、重くなるのではないかと懸念しています。

  • ご提示頂いたソースでは彩度を0(黒)にしていますが、これは色置換の逆ではなく処理としては「指定した色以外を全て黒色に置換する」となっています。
    仮に黒色(またはそれに近しい色)をマスクした時、彩度を0にする方法だと処理後の画像は真っ黒になりそうな気がします。
    これについて何か解決方法はありますか?

最後に、PCOTはC#で組んでいるのでご提示頂いたソースはそのまま流用可能です。
ありがとうございます。
書き込みに関しては全く不快だとは思いません。解決方法までご提示頂けて感謝の気持ちで一杯です。
PCOTは当初自分で使う目的で突貫工事で作ったツールで、大半は一人であれこれ悩んで実装してきたので、こうしてコードベースで一緒に考えてくれる人がいるのは大変心強いです。

668
はま 2024/07/17 (水) 16:54:43 e9db9@c6453

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;
}