「画像処理をする際、グレースケール変換が必要なケース」としては、どういう処理が挙げられるでしょうか?

投稿者: Anonymous 下記の意味は、「グレースケール」変換後「カラー」へ再変換すれば高速になるのではなく、「カラー」が不要な処理は色情報を削除した方が良い、ということでしょうか? 画像処理では、計算処理を効率よく行うために、カラー画像よりグレースケール画像を多く用います link 「画像処理でグレースケール変換するケース」としては、例えばどんな処理があるでしょうか? ・2値化? ・エッジ検出? 基本的に「グレースケール」変換した内容は「カラー」へ戻さない、という認識で合っているでしょうか? ・結果を「カラー」で受け取りたい処理は、「グレースケール」変換しない方が良い? 解決 下記の意味は、「グレースケール」変換後「カラー」へ再変換すれば高速になるのではなく、「カラー」が不要な処理は色情報を削除した方が良い、ということでしょうか? 主に下記理由によります: 多くの画像処理アルゴリズムは単一チャネル(グレースケール)画像のみを対象とする 人間の視覚特性として色差成分よりも、輝度成分に対して強い感度を持っている 計算量削減・作業メモリ削減のために、扱うデータが3チャネルよりも1チャネルの方が好ましい なお、単一チャネルのグレイスケール画像のみから、カラー画像(3チャネル画像)を復元することは 原理的に不可能 です。一般にグレイスケール画像という場合、カラー画像から「色差」という情報を削ぎ落とし、主成分である「輝度」情報のみに要約したものを指します。 「画像処理でグレースケール変換するケース」としては、例えばどんな処理があるでしょうか? 色情報を利用する必要が無く、空間情報(オブジェクト形状など)に着目するアルゴリズムでは、グレースケール変換を行います。 基本的に「グレースケール」変換した内容は「カラー」へ戻さない、という認識で合っているでしょうか? 結果を「カラー」で受け取りたい処理は、「グレースケール」変換しない方が良い? (狭義の解釈をする限り、)”戻さない” ではなく戻すことが 出来ません。 あなたの言う「グレースケール変換」が、3チャネルカラー画像から1チャネルの輝度プレーン+2チャネルの色差プレーンへの変換(いわゆるRGB→YUV変換)を意味しているならば、輝度プレーン処理結果に従って色差プレーンにも画像処理を適用/色差プレーンはそのままに、その後RGB色空間に逆変換することは良くあります。 回答者: Anonymous

画像から画像の一部を見つける

投稿者: Anonymous 完全一致でいいのですが、Javaで画像から画像の一部を検索するライブラリかメソッドなどはありますか? 例えば、 PCのスクリーン全体のスクリーンショット … A画像 ウィンドウの閉じるボタンの画像 … B画像 A画像の中からB画像を検索(完全一致でもいい)してB画像の検出されたA画像上の座標を取得したいです。 画像は java.awt.Image です 解決 コンピュータ・ビジョン(Computer Vision)向けのOpenCVライブラリに、テンプレート・マッチング(Template Matching)という機能があり、対象画像の中に画像が一致する場所があるか?を調べられます。厳密一致だけではなく、ある程度似ている画像(相関度)も探すことができます。 http://opencv.blog.jp/java/template_matching http://workpiles.com/2015/05/opencv-matchtemplate-java/ 回答者: Anonymous

SwiftのWebKitで検索した際に画像が表示されない問題

投稿者: Anonymous Current status 自分用に単純なMacOSアプリを開発しています。 仕様としてはWebKitで人気のあるレシピを検索するだけのものです(下記コード参照) 。 import Cocoa import WebKit class ViewController: NSViewController { @IBOutlet weak var searchTextField: NSTextField! @IBOutlet weak var browserWebView: WKWebView! override func viewDidLoad() { super.viewDidLoad() browserWebView.translatesAutoresizingMaskIntoConstraints = true searchTextField.translatesAutoresizingMaskIntoConstraints = true let StringURL:String = “https://www.google.co.jp/search?q=ピザ+inurl:/recipe/+site:cookpad.com” let url = URL(string:StringURL.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)!) let urlRequest = URLRequest(url: url!) self.browserWebView.load(urlRequest) } override var representedObject:…(Continue Reading)

画像の画素値をあげようとしたら一部が上手く変換されない

投稿者: Anonymous 問題点 あるRGB画像を読み込み、RGBの値(輝度値)を全て50あげて保存するプログラムを作成しているのですが、 できあがった画像は一部のピクセルにおいて[0,0,0]になってしまい、結果的に2枚目の画像のような 虫食いになってしまいます。 各ピクセルのRGB値を出力してみるとやはり以下のとおりいくつかのピクセルのRGB値が[0,0,0]になっていました。どうすれば解決できるでしょうか。 環境 Python 3.8.5 Windows 10 結果 変換前: 変換後: 出力結果(一部) [50 50 50] [50 50 50] [50 50 50] [50 50 50] [50 50 50] [50 50 50] [50 50 50] [50 50 50] [50 50 50] [50 50 50] [50 50 50] [50 50 50] [50 50 50]…(Continue Reading)

グレースケール変換の方法は、どうして複数存在するのでしょうか?

投稿者: Anonymous NTSC 係数を使用している例が多いようにも思うのですが、この方法のメリットとしてどんな点が挙げられるでしょうか? YCbCr変換は、上記とは全く関係ない? ・「YCbCr」と「YCrCb」は同じ意味でしょうか? 解決 前提:人間が知覚できる「色」を数値表現するため、色空間(color space)とよばれる3次元の空間を定義します。ある色を3次元空間における点にマッピングすることで、任意の色は “3個の値の組” として記述できます。 グレースケール変換の方法は、どうして複数存在するのでしょうか? PC業界で一般によく知られたRGB色空間や、TV業界で用いられるYUV色空間など、色空間には唯一絶対という物が存在しません。厳密には”RGB色空間”は総称にすぎず、”Adobe RGB”や”sRGB”など異なる色空間が定義されています。同様に”YUV色空間”についても、厳密には”NTSC YIQ”や”BT.601″(SDTV), “BT.709″(HDTV), “BT.2020″(4K/8K)などテレビ放送の規格に合わせて異なる色空間が定義されています。 グレイスケール変換は「RGB色空間からYUV色空間への変換(のY成分だけに着目)」に相当しますが、変換元/変換先の色空間の組み合わせに応じて複数の変換式が存在します。 NTSC 係数を使用している例が多いようにも思うのですが、この方法のメリットとしてどんな点が挙げられるでしょうか? 「NTSCにより規格化された標準的な仕様である」という点を除けばメリットありません。NTSCは主に北米+日本で採用されている仕様ですが、世界的にはPAL(主に欧州)、SECAM(ロシア+一部アフリカ)と少なくとも3種類のメジャーな仕様が存在します。NTSCとPAL/SECAMで色空間は微妙に異なっていますが、色空間変換に関してはNTSCだから優れた点というのは特に存在しません。 YCbCr変換は、上記とは全く関係ない? YCbCrと表記した場合、ITU-R BT.601で定義される色空間を指すことが多いです。BT.601で定義される係数はNTSCと同一です。 「YCbCr」と「YCrCb」は同じ意味でしょうか? 色空間としては同じですが、データの順序(メモリ格納順や信号送出順など)が異なることを表現しています。 回答者: Anonymous

画像に対する「自然な彩度」補正の実装について

投稿者: Anonymous 「自然な彩度」について調べているのですが、スケール対数曲線による自然な彩度補正に掲載されている内容が良く分かりません 線形補正について -evaluate multiply の値を変えるだけですか? 線形補正1.2 $ convert 前.jpg -colorspace hsl -channel g -evaluate multiply 1.2 +channel -colorspace srgb 後.jpg 線形補正2 $ convert 前.jpg -colorspace hsl -channel g -evaluate multiply 2 +channel -colorspace srgb 後.jpg スケール対数補正1.3について 下記何れですか? $ convert 前.jpg -colorspace hsl -channel g -evaluate log 1 +channel -colorspace srgb 後.jpg $ convert…(Continue Reading)

Javaで画像ファイルから画像の1部を読み取る

投稿者: Anonymous 今Javaで弾幕シューティングゲームを作成しているのですが、弾の画像を使いたいと考え、ネット上でフリーの弾画像を探しまして、こちらのサイトの弾幕項目の1番上のものを使おうと考えたのですが、この画像の1つの弾画像をJavaで使うことは可能なのでしょうか。 解決 一枚画像の位置指定で表示させるのはわりとメジャーな方式です。 下記URLを参考にしてください。 http://www.javadrive.jp/applet/image/index4.html 回答者: Anonymous

画像編集ソフトなどにある、図形を再編集できる機能のロジック、考え方を教えて下さい。

投稿者: Anonymous 知りたいこと、やりたいこと Macのプレビューのような、図形を画像上においた後、再度サイズを変えたり場所を変えたりできるようにする機能を作りたい。 ↓ これらを実装する際に、どのように図形の場所やクリックされた位置などを保持しているかを知りたい。 やってみたこと x軸、y軸、深さ(z-index)、幅、高さを変数にもたせておく Window上のクリックイベントを検知した際、存在する図形オブジェクトをループで見ていく クリックした座標にオブジェクトがあれば編集可能にする といったことをやってみましたが、以下の問題が発生しました。 画面やベースの画像を拡大縮小したときにうまく座標が取れない(クリックの位置がずれる) 背景が透明な四角形などのクリック位置の設定がうまくできない(枠線付近でないとクリックを反応させない、というのができない) こういったものはどのように実装されているのでしょうか? ご存じの方、ご教示いただけますと幸いです。 よろしくお願いいたします。 解決 一般に図形編集用のアプリケーションは二種類の空間を持っています。 それは、「(A)図形の論理的長さを持つ空間」と「(B)(A)の空間に配置された図形を画面上に表示する為の表現用の空間」です。 (A)空間を(B)空間に表示することを射影又は投影と言う場合もあります。 さて、それらを関係づけるには最も簡単な場合でも (1) (A)空間の原点に対する(B)空間の原点のオフセット量 (2) (A)空間の論理長さ単位に対する(B)空間での表現上の長さ のパラメータが必要で、(1)をスクロール量、(2)を拡大率とも言います。 また、上記の操作は表現用の操作であって、(A)空間に配置された要素を編集するものではないという事に注意しなければなりません。 次に(A)空間上の要素を同定するためにユーザーはマウスをクリックしますが、ユーザーの意識としては(B)空間に対して行っているため、(A)空間上でその位置を特定するためには、(B)空間から(A)空間の位置を算定しなければ正しい距離を算定できません。 編集の一時的な編集量は(A)空間上の単位で持つか(B)空間上の長さで持つかで異なる場合もありますが、最終的な編集結果は(A)空間に配置された要素の(A)空間上の単位で行われなければなりません。 以上の様に「編集対象の実体のある唯一の空間」と「複数の表示上の射影」を分けて考えることが、図形編集などのアプリケーションでは重要と考えられます。 例として、3D表現機能を持つCAD等の場合には(A)は物理空間となります。(B)は複数ある編集用の画面で、一般にX、Y、Z、パースの4つの射影画面を出すことができます。 回答者: Anonymous

Pillowで画像のどんな画像サイズでも右下に文字列を入れたい。

投稿者: Anonymous Pythonで画像編集をしたいのですが、ポジションが上手く指定出来ません。 以下のコードだと画像のサイズによってポジションが変わるので常に同じ場所に固定したいです。 draw.text((1000, 800), u’https’, fill=(255, 0, 0)) 1000がx座標で800がy座標だそうです。 下の画像のように入れたい。 よろしくお願いします。 解決 読み込んだ画像の .size プロパティで幅と高さがわかるので、そこから書き込みたい文字列のサイズ分の領域を引けば開始座標が得られるでしょう。 Pythonで画像の大きさやフォーマットを調べる(Pillow編) 【Python/Pillow】画像の幅と高さを取得(縦・横のサイズ) img = Image.open(“input.jpg”) width, height = img.size それに対して質問のようにdraw.textすれば良いのではないでしょうか? 画像サイズが文字列を書けるくらい十分にあるかどうかは事前に判定して調整したり、フォントや背景色の指定なども付け加えておくおく必要があるでしょうけれど。 Pythonで画像に日本語文字を入れる。 【Python】Pillowで画像にテキストを描き込む [Python] Pillowによる画像処理(ImageDrawオブジェクトで図形描画) draw.text(((width – 文字列描画領域幅), (height – 文字列描画領域高さ)), u’https’, fill=(255, 0, 0)) 描画する文字列のサイズを取得する方法はこちらの記事を参考に。 Pythonで画像に描画するテキストのピクセルサイズを取得 同じ作者のシリーズでOpenCV+Pillowで同様の文字列描画を行っている記事 Pythonで画像に日本語文字を入れる方法 回答者: Anonymous

pythonを使って画像変形をさせたい。

投稿者: Anonymous 顧客の踵の高さ0mmの足の画像から、ハイヒールを履いたときの足の画像を作りたいと思っています。 そこで、自分の足に50くらい黒点を振って、例えば踵の高さ0mmの画像の点の位置から50mmに上がった時の点の位置を測定して、どの位置の点がどの位置に移動するかを測定します。 そして、そのデータを使って踵の高さ0mmの画像を2次元補間して、踵の高さ50mmの画僧に変換したいと思っています。 環境はPyhton3.6を使ってその変換を行うには、どのようなライブラリを使ったら良いか教えて頂けないでしょうか。 画像を添付しました。こんな感じにしたいと思っています。 基本的にコメントさんのご意見のとおりです。 Pythonを使うのは、変換式が欲しいからです。 よろしくお願いします。 解決 皆さんご協力ありがとうございました。 本件は、別の方法で解決しようと思います。 それでは、よろしくお願いします。 回答者: Anonymous

pythonで画像上の建造物を物体として認識させたい

投稿者: Anonymous 画像上の特定の部分をオブジェクトとして認識させたい 具体的には、画像の空(そら)の部分との差分として、建造物を物体として認識できるようにし対と思っています。(空の領域に重なっていない物体は認識しない) 物体として認識することによって、例えばグラフなどを上に重ねたときにグラフと物体の交点が得られるような処理をおこないたいと思っています。 プログラミング言語:python3.6 開発環境:Winpython – Spyder OS:Windows7 解決 マルチポスト先で回答をいただきました。 よって、自己解決とさせていただきます。 回答内容: Deep Learning の SegNet というモデルを使い、画像を領域ごとに分割させる。 回答者: Anonymous

websocketを使いpythonプログラム同士でPiCameraから取得したデータのやり取りをしたい

投稿者: Anonymous 送信側 import websocket from picamera import camera import io class WebSocketClient(object): def __init__(self, url, io_loop=None, extra_headers=None): self.ws = websocket.WebSocketApp(url) self.ws.on_open = self.on_open self.state = True self.picamera = camera.PiCamera() self.picamera.resolution = (920,690) # 4:3 self.picamera.rotation = 270 def on_open(self): self.state = True print(“open”) while(self.state): stream = io.BytesIO() for pixels in Picamera.capture_continuous(stream, “png”): stream.seek(0) data…(Continue Reading)

エラー 画像を自動でしきい値を決めて2値化したい。大津のアルゴリズム

投稿者: Anonymous AnacondaでOpenCVを学習しております。指定画像を2値化して表示をしたいのですが、エラーが返されます。 使用環境: Anaconda3(Python 2.7.13), Windows 7, OpenCV 3.2.0 試みた実行したのは下記[threshold.py]です。 # coding: UTF-8 import cv2 img = cv2.imread(’01.png’, cv2.COLOR_BGR2GRAY) ret, th_Otsu = cv2.threshold(img, 0, 255, cv2.THRESH_TOZERO + cv2.THRESH_OTSU) cv2.imshow(’01_Otsu.png’, th_Otsu) cv2.waitKey(0) cv2.destroyAllWindows() 下記 実行時のエラーです。 OpenCV Error: Assertion failed (src.type() == CV_8UC1) in cv::threshold, file C:buildmaster_winpack-bindings-win32-vc14-staticopencvmodulesimgprocsrcthresh.cpp, line 1356 Traceback (most recent call last): File “C:/Users/admin/.spyder-py3/threshold.py”, line…(Continue Reading)

Twitterの画像サイズ制限について。1辺が4049pxlを超えるもの、はどこで確認できますか?

投稿者: Anonymous Twitterでダウンロード可能な「最大画像サイズ」及び「最大画像ファイル容量」について調査しています。試しに画像ファイ容量が大きい画像をアップロード後、ダウンロードしてみたら、「1MB」にも満たないファイル容量でした。 Q1.1辺が4049pxlを超えるものとありますが、この仕様はどのドキュメントで確認できますか? ・画像は5MB以下、GIF画像はモバイル端末なら5MBまで、twitter.comなら15MBまで追加できます。 ・Photos can be up to 5MB; animated GIFs can be up to 5MB on mobile, and up to 15MB on web. Q2.ダウンロード可能なファイル要件は、「1辺が4049pxlを超えないもの」か「5MB以下」の何れかを満たす場合ですか? 解決 参照されているYahoo!ニュースの原文はGizmodoのこちらの記事かと思われます。 Twitterの写真がめっちゃ高解像度になりました Yahoo!ニュースのものではリンクが欠落していますが、原文には載っています。 Twitter社のエンジニアの方の一連のツイートが出典で、そのうちこちらにまとめがあります。 Q1.1辺が4049pxlを超えるものとありますが、この仕様はどのドキュメントで確認できますか? 該当するドキュメントはメディアのアップロード > メディアのベストプラクティス辺りかと思いますが、ここに明記はされていません。上記ツイート中の 2) if it is over 4096 in any dimension, we will transcode を根拠としていると思われます(4049pxというのはキリが悪いので4096のtypoと考えて良いかと思います)。 Q2.ダウンロード可能なファイル要件は、「1辺が4049pxlを超えないもの」か「5MB以下」の何れかを満たす場合ですか? 同様のツイートより 2) if it is…(Continue Reading)

Identiconはどんな仕組み?

投稿者: Anonymous Identiconというキルト模様の画像をIPや名前から作るAPIがあります。例えば、このサイトに登録した時の初期アイコンがそれです(GravatarのAPIだそうです)。 そこで質問なのですが、GravatarなどのAPIではどのようにして名前から画像を作っているのでしょうか? 解決 実装例がインターネット上にたくさんありますので、経験のある言語での実装をご覧いただくと理解が早いと思いますが、3×3のパターンを持つ実装について、共通する部分を抽象的に列挙すると次のようになります。 名前やメールアドレスなどの可変長の入力を受けて、ハッシュ関数など一方向関数で固定長のデータを得る。 1で得たデータから適当な部分を取り出して、a)描画色、b)中央の描画パターン、c)四隅の描画パターン、d)残り部分の描画パターン、を決定する。 パターンに基づき画像を描画し出力する。 たとえば使用する色を24bitとして、描画パターンを16種類(4bit)用意しておくとすれば必要なデータ量は24(a) + 4 x 3(b,c,d) = 36bitとなります。 ただし一般に使われているハッシュ関数などは出力がもっと長いので(たとえばMD5は128bit)、データを余らせず結果をばらけさせるために、描画パターンの反転(するかしないか1bit)だったり、様々な模様を得るために描画パターンの追加、あるいはマス目の増加などを施してより複雑な模様を描画しています。 回答者: Anonymous

userがWebページへアクセスしてきたタイミングで、文字列から画像を動的生成した上で、Twitterカード画像として指定したい

投稿者: Anonymous 現状 事前に用意した画像(img.png)を指定している index.php <meta property=”og:image” content=”img.png”> やりたいこと ブログの記事ページ毎に記事タイトルから画像を動的作成して、指定したい ※テキストから画像を動的作成する手段としては、GDやIMagickを考えています article/1.php <?php $img = 記事タイトル1(の文字列)から生成した画像パス; ?> <meta property=”og:image” content=”<?php echo $img; ?>”> article/2.php <?php $img = 記事タイトル2(の文字列)から生成した画像パス; ?> <meta property=”og:image” content=”<?php echo $img; ?>”> 分からないこと ・事前に画像出力しておいてその画像パスを指定する方法なら何となく想像が付くのですが、「article/1.php」や「article/2.php」へuserがアクセスしてきたタイミングで、(文字列から)画像生成して、そのパスを指定する方法が分かりません 質問 ・そもそもやりたいこと(事前に画像生成することなく、userがアクセスしてきたタイミングで動的生成した画像を指定)は可能ですか? ・出来れば画像をファイル出力せず指定したいのですが、画像は一旦出力する必要はありますか? 画像出力するためには、header処理が必要で、そうすると、他の処理が出来なくなる気がしているのですが…、 画像を事前になるべく生成したくない理由 ・これ以外の他の用途では使用予定がないため ・なるべく容量を抑えたい 解決 調べる限りmeta タグのcontentにおいては、imgタグで利用できるbase64encodeした画像を張り付けることは難しそうです。 そのため「article/2.php」で画像も出力して表示するというのはできなさそうです。 画像パスを出力すると、どうしてもファイルを置かなければならないので、それだとファイルをまた消したりしないといけません。 ただし、例えば動的に出力するスクリプトを用意しておくことで対応は可能そうです。 例えば article/1.php <meta property=’og:image’ content=’decode.php?article=1’/> decode.php…(Continue Reading)

segnetの使い方について

投稿者: Anonymous Pythonで画像を領域ごとに分割しようとしたときに、segnetというモデルを使うとうまくいくという情報を聞いたので、Pythonでそれを動かしてみようと試みました。 しかし、以下のサイトでダウンロードしたフォルダにはファイルが様々に入っており、どれをどうすればプログラムが実行できるのかわかりません。 https://github.com/alexgkendall/caffe-segnet 自分で調べたところだと、caffeというものを導入してつかうということはわかったのですが、そのcaffeについても何がなんだかさっぱりわかりません。 caffe-segnetについて、そのプログラムをPythonで実行させる方法・手順を教えていただきたいです。 共感した 0 解決 マルチポスト先で回答をいただきました。 よって、自己解決とさせていただきます。 回答内容: Keras や Tensorflow で実装した segnet があるため、そちらの方を使用する。 ( https://qiita.com/uni-3/items/a62daa5a03a02f5fa46d ) 回答者: Anonymous

Python3.0 画像ファイルのピクセルデータをソート

投稿者: Anonymous Pythonを使って画像ファイルのピクセルデータを色相>彩度>明度の順でソートしようと考えております。 しかし、コード中のコメントにも載せている通り小数点のデータを正しくソートするためにはkey=floatの要素をどこかに追加しなければならないのですが、どのように記述すればよいのでしょうか。 また、ソートする際に2次元に変換して3次元に戻しています。 3次元のままソートすることはできるのでしょうか。 後、今回は色相を優先していますが今後は彩度や明度を優先する機会もあると考えています。 その場合は優先順位をつけて複数のキーの明記が必要になってくると思います。 今回かなり苦戦したのでその時に備えて参考資料としてデータ操作処理の書籍の購入を考えております。 特に複数キーの場合とfloat型でのソート等複数の条件が重なった時の記述方法についての情報がネットではなかなか探しにくかったためそのような本があればいいなと思います。 市販のいい本がありましたら教えてください。 from PIL import Image import numpy as np #画像ファイルを読み込み image_in = Image.open(imagefile) RGB = np.asarray(image_in) height, width, datas = np.array(image_in).shape #RBG→HSVへ変換 image_in_comb = image_in.convert(“HSV”) HSV = np.array(image_in_comb) RGB2 = np.array(image_in_comb) #出力用 #ソートのため三次元から二次元へ変換 HSV_2d = np.zeros((width * height, datas)) for w in range(width): for h…(Continue Reading)

pythonでファイルに入っている複数枚の画像をn×mで連結して、1枚の画像として出力したいです

投稿者: Anonymous 以下のコードでファイルに入っている画像を順に並べて1枚の画像にしたいです。 (5×9)枚で画像枚数は42~50で枠が足りなくてもあふれても最初の1枚目からから最高45枚だけ出力させたいです。 問題としてはIndexError: list index out of rangeが出てしまいます。 よろしくお願いします。 解決 動作確認はしていませんが、ご質問のフォーマットに合わせるとこんな感じですかね。 イメージファイルの数を取得しておいて、それ以上になったらbreakでループを抜けます。 最低1個のイメージファイルが必要です。 from PIL import Image import numpy as np import cv2, os, glob fn = glob.glob(‘\UsersyDesktopresize*.jpg’) l = len(fn) k = 0 for i in range(5): for j in range(9): if k >= l:break im = np.array(Image.open(fn[k])) if j == 0:im1…(Continue Reading)

javascriptで画像が存在するかどうか判定したい

投稿者: user28197 javascript初心者です 画像が存在するかどうか判定し、存在すればその画像のパスを配列に格納する関数を作っています 画像はpicture1.png、picture2.png、picture3.pngのように連番で存在しています HTMLImageElement オブジェクトを作成して画像のパスを挿入し、 widthの値が0より大きいなら画像のパスは存在すると判定して配列に画像のパスを格納する仕組みです ですがこれだと正常に画像あると判定される場合と判定しない場合があり、 動作が安定しません 画像は確実にパス上に存在するのですが、例えばpicture1.pngからpicture7.pngまで存在するにも関わらず、 picture1.pngで画像がないと判定されたり、picture6.pngのところで画像がないと判定されたり、 正常に判定されない場合の動作に一貫性がありません 問題点のご指摘、もしくはもっといい方法があれば教えていただきたいです PHPではファイル名一覧を取得できるのは存じてますが、サーバー上の都合でjavascript、jqueryで 実現できないかと考えています よろしくお願いいたします _x000D_ _x000D_ var ImagePath = new Array();_x000D_ _x000D_ function getImagePath(){_x000D_ var num = 1;_x000D_ var cnt = 1;_x000D_ while(true){_x000D_ var img = new Image();_x000D_ img.src = “img/” + num + “/picture” + cnt + “.png”;_x000D_ if(img.width > 0){_x000D_…(Continue Reading)

PNG24(透過) と PNG8(アルファチャネル)について

投稿者: Anonymous Q1.PNG24について PNG24:24ビットカラー PNG32:24ビットカラー+8ビットアルファチャンネル と思っていたのですが、下記はどういう意味ですか? png24 png8同様に情報がない部分は透過処理が可能 24ビットカラー内(使用していない部分)にアルファチャンネルが含まれる。 透明度%指定できる 24ビットカラー内(使用していない部分)に透過が含まれる。 透明度%指定できない アルファチャンネルつきPNG-24の意味 Q2.PNG8について PNG8(アルファチャネル) どういう意味ですか? 8ビットカラー内(使用していない部分)にアルファチャンネルが含まれる。 透明度%指定できる アルファチャンネルつきPNG-8の意味 Q3.そもそも 24ビットカラー+8ビットアルファチャンネル を何と呼ぶ? 24bitカラーにαチャネル8bitを加えたものを32bitカラーとは呼ばない < 追記 > 下記認識で合っていますか? alphaチャンネルがある場合 透明度%指定できる 何色でも(半)透明にできる alphaチャンネルがない場合 透明度%指定できない 何色透明にできるかはPNGのカラータイプによって異なる ※tRNSチャンクで透過色を指定する 解決 Q1.PNG24について PNG24:24ビットカラー PNG32:24ビットカラー+8ビットアルファチャンネル 慣例的には 上記の通りの解釈です。PNG公式サイトFAQより部分引用します: Q. What are "PNG8" and "PNG24"? A. PNG24, on the other hand, is shorthand for…(Continue Reading)

Laravel画像を投稿

投稿者: Anonymous 私はLaravelで画像を投稿出来るようにしたい その際のコードはこれです view <form> <input type=”file” name=”imagefile” accept=”image/*”> <input type=”text” name=”content”> </form> しかしその後コントローラー側で画像の保存方法が調べても分からない 上手くできたのはシンボリックリンクだけです $post_data = $request->except(‘imagefile’); $imagefile = $request->file(‘imagefile’); $temp_path = $imagefile->store(‘public/temp’); $a = new Test; $a->fill($request->all())->save(); この様な処理をしても imagefileにNULLは入れることは出来ません と出てきて処理が悪いのはわかるのですが何をしたらいいのかは思いつ来ませんでした 解決 この方法で無事画像の保存が上手くできました $post_data = $request->except(‘imagefile’); $imagefile = $request->file(‘imagefile’); $temp_path = $imagefile->store(‘public/temp’); $filename = $request->file(‘image’); $post_data->imagefile = $filename; $a = new Test; $a->fill($post_data)->save();…(Continue Reading)

pythonで、画像(JPEG)上にグラフを描画する方法について

投稿者: Anonymous マイナスからプラスの範囲の値をとるグラフを画像の上に重ねて表示・保存させたいのですが、以下のようなプログラムだと添付図のような結果になってしまいます。 画像全体にぴったり合うようにグラフを重ね(グラフのサイズに画像のサイズを合わせます)、かつグラフの目盛はそのまま保持させるにはどうすればよいのか教えていただきたいです。 img = Image.open(“test.jpg”) img_rs = img.resize((200, 100)) img_draw = np.array(img_rs) x = [-80,-65,-32,-13,-4,1,7,27,55,71,94] y = [-47,-32,-27,-18,-9,3,9,21,34,41,49] plt.plot(x, y, ‘-ro’) plt.xlim(-100, 100) plt.ylim(-50,50) plt.imshow(img_draw) 解決 画像を表示する時にextentを設定すると表示位置を設定できます。 img = Image.open(“test.jpg”) img_rs = img.resize((200, 100)) img_draw = np.array(img_rs) x = [-80,-65,-32,-13,-4,1,7,27,55,71,94] y = [-47,-32,-27,-18,-9,3,9,21,34,41,49] plt.plot(x, y, ‘-ro’) plt.xlim(-100, 100) plt.ylim(-50,50) extent = [-100, 100,-50,50]…(Continue Reading)

RAWとJPEGの違い

投稿者: Anonymous 「RAW」「JPEG」それぞれの仕様はどこで確認できますか? どこが決定している? 特にExifについて確認したい Exifは独立した仕様ですか。RAWのExifとJPEGのExifの違いなど Exifをどうやって記録している? ヘッダー? メタデータ? 添付ファイル?  疑問に思ったきっかけ これまで彩度は、JPEGへ対して後からソフトウェアで調整するものだと思っていました。しかし、Wikipediaでは下記のように記載されています RAW画像を撮影できるカメラは、それらの設定をRAW画像に出力するが、実際の計算はパソコンで行われる この意味が分かりませんでした。 「カメラで彩度設定した場合その設定をRAW画像に出力する、とはどういうことなのか」「(F値などの)他パラメーターと彩度におけるRAWでの取り扱われ方の違い」「そもそもRAWは画像なのか」など、色々疑問に思ったので質問しました 解決 Wikipediaの記事だけでも結構な情報があるようです。 JPEG – Wikipedia 決定しているのはここでしょう。Overview of JPEG 規格書 規格は、合同のグループで作られたため国際標準化機構 (ISO)、国際電気標準会議 (IEC) と国際電気通信連合 (ITU) の双方から出されている。それにならい、日本産業規格 (JIS) でも規格化されている。 ITU-T勧告 T.81 ISO/IEC 10918-1:1994 JIS X 4301:1995「連続階調静止画像のディジタル圧縮及び符号処理」 RAW画像 – Wikipedia 多くのファイルは標準化されていない形式である – 標準化されたRAW画像フォーマット(ISO 12234-2, TIFF/EPやDNG)はあまり使われていない。このため、将来的に保存されているデータが現像できなくなる可能性がある。また、JPEGやTIFFなどの標準化されたファイルとは違い、画像を表示できるソフトが非常に限られている。 ISO 12234-2のWikipediaには以下 TIFF/EP へのリンクだけ表示されています。 TIFF/EP – Wikipedia DNGはDigital Negativeというらしいです。 Digital Negative…(Continue Reading)

スタックオーバーフローの、デフォルトユーザ画像はどのように生成しているのでしょうか?

投稿者: Anonymous スタックオーバーフローで、(何も画像をアップロードしていない時点の)デフォルトユーザ画像は、どのように生成しているのでしょうか? 一人ひとり違うよう自動生成しているようにも見えるのですが、その方法を知りたいです 解決 Metaにまさにその質問があります。 How is the default user avatar generated? このような画像はIdenticonと呼ばれていて、メールアドレスのハッシュ値としてランダムな値を得て画像を生成しているようです。厳密なアルゴリズムまではよくわかりませんが、オリジナルはこちらで、他にもPHPの実装などが紹介されています。英語版のWikipediaも参考になります。 回答者: Anonymous

Windowsのファイル名変更で、画像の拡張子をpngからjpgへ変更して保存したら画像が表示されたのですが、なぜですか?

投稿者: Anonymous やりたいこと png画像をjpg画像へ変換したい 従来取っていた方法 画像編集ソフトウェアでpng画像ファイルを開き、jpg画像として保存していました 今回試した方法 Windowsのファイル名変更で、画像の拡張子をpngからjpgへ変更して保存。 その保存したファイルを画像ソフトウェアで開いたら画像が表示されました。 質問 ・ファイル名変更で、「拡張子をjpgへ変更した後、表示された画像」は、jpg画像ですか? ・この変換方法は正しいですか? ・もしこの方法が正しいのなら、バッチやPHPなどで、ファイルの拡張子変更するだけで、画像変換できるのですか? 解決 ・ファイル名変更で、「拡張子をjpgへ変更した後、表示された画像」は、jpg画像ですか? pngを拡張子jpgに変えただけでは、拡張子がjpgのpngフォーマットの画像です。 表示出来るかどうかは、画像ビューワーの実装によると思います。ファイルヘッダを解析して表示するタイプなら、拡張子は見ていないと思います。 ・この変換方法は正しいですか? そもそも変換されていません。バイナリエディタでファイルを開いてヘッダを見たら判ります。 pngのシグネチャ jpgのシグネチャ ・もしこの方法が正しいのなら、バッチやPHPなどで、ファイルの拡張子変更するだけで、 画像変換できるのですか? 出来ません。 回答者: Anonymous

CNNによる画像分類における、学習とは?

投稿者: Anonymous 私はpython言語で書かれたkerasを用いて、画像分類を行っていますが、学習と判別がどのように行われているのか、仕組みが分かりません。 例えば、MNISTのデータセットをDLし、モデルを構築後、下記のコードを入力したとします。訓練データが54000枚、validation splitの値を0.1に設定しバリデーションデータが6000枚あります。 model.compile( loss=’categorical_crossentropy’, optimizer=Adam(), metrics=[‘accuracy’]) history = model.fit( x=x_train, y=y_train, batch_size=n_batch, epochs=n_t,validation_split=0.1, verbose=2, shuffle=True) # loss(訓練データの損失), acc(訓練データの正解率), al_loss(バリデーションセットの損失), val_acc(バリデーションセットの正解率) 上記のように、fitメソッドを用いることによって Train on 54000 samples, validate on 6000 samples Epoch 1/10 – 2s – loss: 0.0349 – acc: 0.9892 – val_loss: 0.0286 – val_acc: 0.9912 と結果が出たとします。ここでのlossとaccuracyについて、以下の2つの疑問についてお答えいただきたいです。 ①epoch1/10の場合、訓練データ54000枚を1度だけ分類器の全層を通して54000枚分の特徴量を抽出し、学習済みのモデルを作成した後、訓練データとバリデーションデータを判別し、全枚数における正解の枚数を正答率として表しているのでしょうか。学習時だけ分類器の全ての層を通しているのか、判別時も同様に分類器を通るのか分かりません。 ②学習モデルについては、畳み込み層で、教師付きの訓練データ画像一枚一枚の画像から特徴量を抽出して、全訓練画像からの特徴マップを作成し、その後flattenによって各特徴マップを1次元配列に平滑化し、全結合層によって、その1次元の特徴量を各クラスに分配して、各クラスの特徴量を保持するという認識でいますが、合っていますでしょうか。学習だけそういう特徴量を抽出するのか、判別でもそういう過程を経ているのか、イマイチ理解できませんので、ご教授頂けるか、有益なサイトおよび本など紹介いただけたら幸いです。 2つとも同じような質問ですが、独学に頼らざるを得ない環境のため、ご教授頂けたら幸いです。。。 解決 私も機械学習について勉強中ですが、分かる範囲で答えさせていただきます。 ①、②についてお答えする前に、まずCNN内で具体的にどのような操作が行われているのか説明します。…(Continue Reading)

Android DialogFragmentのImageViewにウェブ上の画像を表示する方法を教えて下さい。

投稿者: Anonymous Android DialogFragmentのImageViewにウェブ上の画像を表示する方法を教えて下さい。 詳細:  お世話なっております。    現在、WebViewを使用したアプリを制作しております。  動作として、ウェブにpng,jpgのリンクがあり、それを押した場合Dialogを開き、その画像を表示したいと思っております。 以下のコードとレイアウトでダイアログは表示できたのですが、ImageViewにウェブ上の画像を表示する方法が実現できず困っております。 下記サイトを参考に色々試したのですが、アプリが異常終了してしまいます。 http://blog.iscw.jp/?p=658 http://logicalerror.seesaa.net/article/419965567.html imageview.setImageURI(url)でなくimageview.setImageDrawable(drawable)を使用することがわかったのですがInputStreamで異常がでてしまいます。 レイアウト側でbackgroundに画像を設定した場合は表示されるため構造は間違っていないと思い、色々試しているのですが困っております。 正直な話、ご質問する内容自体が間違っているのかも?と考えてしまうほどです。 InputStreamの問題だけでなく、ImageViewへの動的画像追加もMainActivityで行う必要があるのでは?と思っているのですがダイアログと合わせることが初めてでどのようにすることが正しいのか?で迷っております。 アドバイスを頂ければ幸いです。 よろしくお願いたします。 追記: 下記でご指摘を頂いた部分(エラー時のコード&Log内容)を追加させていただきました。 TestDialogFragment.java import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.Context; import android.content.DialogInterface; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; public class TestDialogFragment…(Continue Reading)

Javaで画像サイズを取得する

投稿者: Anonymous Javaで画像の実サイズを取得したいです. 対象の画像形式はTIFF, JPEG, PNG, GIFです.本家stackoverflowにImageIOを使っている例があるのですが、 (例) https://stackoverflow.com/questions/672916/how-to-get-image-height-and-width-using-java どうもこれはあくまでピクセル数の取得で、解像度は取得していないように見えます.解像度がないと画像の実サイズが計算できませんので困ります. 適切な方法、ライブラリがありましたら教示ください. ※ GIFは解像度がないのでプログラム既定の解像度を用いて呼び出し側で適切に計算するつもりです. 解決 JPEGの場合は以下のようにメタデータから解像度を取得できます PNGも同様の方法で解像度を取得できそうです 参考: javax.imageio.metadata (Java Platform SE 8 ) 追記: java – How to set DPI information in an image? – Stack Overflow TIFFは標準では多分現状未対応です 追記: Java 9では標準になりそう? Java 9のTIFF入出力機能を試してみた | HOS Co.,Ltd. 追記: Java Advanced Imaging API Home Page import java.io.*;…(Continue Reading)

画像の無断ダウンロードを禁止する仕組みは可能なのでしょうか?

投稿者: Anonymous WEBアプリケーションを前提としています。 通常、HTMLへの埋め込み、CSSでの埋め込みで画像を表示しますが、 クライアントが(※完全な画像を)ダウンロードできない画像を表示するWEBサービスを発見しました。 解像度の落ちた画像はDL可能なようです。 携帯用写真アップローダーのようですが、先日発見したアップローダーが下記になります。 http://vpic.to/150810H6O6 右上に、再配布NGとなっており、NGの場合は写真をクリックできないようになっているようです。 再配布可の場合は写真をクリックすると、完全な解像度の画像を表示するようになっています。 解像度を落とした画像と、通常のアップロードされた画像の2種類を作成すれば可能かと思われますが、このサイトの場合、正規画像のURLを見つけてしまえば正規画像はDL可能なのでしょうか? また、アップロードされた正規画像を参照(ブラウザで表示)することはできても、DLすることはできない(PC・モバイル問わず)ということは技術的に可能なのでしょうか? 解決 先に言いますと、Webアプリケーションで完全に無断ダウンロードを禁止することは不可能です。 画像を表示するために画像の情報を絶対にダウンロードしなくてはならないためです。 ただ、そのダウンロードを減らす意味合いでなら色々と方法があります。 1.画像の表示方法を考察する  画像をバイナリで取得してcanvasなどでレンダリングするとかですかね  canvasでレンダリングする事で単純に画像をダウンロードする事を防ぐ事が出来ます。  —–  バイナリからでも、データを取得出来れば出力できます。  通信を傍受されたりすれば解析されます。 2.画像にオブジェクトをオーバーレイする  要素をクリックなど要素にアクセスしづらくさせることで  右クリックなども防げます。  —–  邪魔な要素を削除していけば画像にたどり着けるのであまり意味は無いです。 3.マウスイベントを無効にする  マウスイベントを無効に出来れば、右クリックからのメニューなどを防げます。  —–  Javascriptなどスクリプトの実行を制限することで無効化可能です。  ただし”1″と組み合わせればスクリプトを実行しなければ画像を表示できない状態に持っていけます。  これも絶対ではないですが、結局Webコンソールで解析されるとダメですね。 こんな感じでしょうか? 回答者: Anonymous