タグ付けされた質問 「image-processing」

デジタル画像処理に関連するもの、つまり、デジタル画像から情報を抽出または操作するために使用される理論と技術。

2
GD vs ImageMagick vs Gmagick for jpg?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私は私のウェブサイトで画像を操作するためにGDを放棄する段階にあります-それはひどいです。 GDよりも優れているためImageMagickを使用すると誰もが言っていますが、ImageMagickとGmagick(画像処理のスイスアーミーナイフ)はどうですか? Zendは、http://devzone.zend.com/article/10531でそれらについて語っているかなりの記事を持っています。 ImageMagickに向かう前に、代わりにgmagickを使用する動機はありますか? (PHP 5.3以降) 編集:2つのライブラリの間でどちらが良いかを尋ねることの何が問題になっていますか?公正な質問だと思います。誰かが他のライブラリよりも優れている点を説明できれば、私や他の人々がこの質問を読むのに役立ちます。なぜそのような質問を閉じるのですか? Edit2:私が何をする必要があるかを尋ねる皆のため:私はそれは気づかないと思います:ユーザーが画像をアップロードします(png / gif / bmp w / eの場合もあります)JPGに変換してからデータベースに保存する必要があります。大きすぎるので、少しサイズを小さくする必要があります。 ありがとう

13
iOSでプログラムによって画像に色を付けるにはどうすればよいですか?
画像にカラーリファレンスを適用します。結果は、Photoshopの乗算ブレンドモードのようになります。このモードでは、白が色合いに置き換えられます。 カラー値を継続的に変更します。 フォローアップ:これを行うためのコードをImageViewのdrawRect:メソッドに挿入しますよね? いつものように、リンクとは対照的に、コードスニペットは私の理解に大きく役立ちます。 更新:Raminが提案したコードでUIImageViewをサブクラス化。 私はこれを私のビューコントローラのviewDidLoad:に入れました: [self.lena setImage:[UIImage imageNamed:kImageName]]; [self.lena setOverlayColor:[UIColor blueColor]]; [super viewDidLoad]; 画像は見えますが、色合いは出ていません。他の画像の読み込み、IBでの画像の設定、ビューコントローラーでのsetNeedsDisplay:の呼び出しも試みました。 更新:drawRect:が呼び出されていません。 最終更新: imageViewが適切に設定された古いプロジェクトを見つけたので、Raminのコードをテストでき、魅力的に動作します! 最終、最終更新: Core Graphicsについて学習しているだけの人のために、おそらく機能する可能性のある最も単純なものを示します。 サブクラス化されたUIViewで: - (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColor(context, CGColorGetComponents([UIColor colorWithRed:0.5 green:0.5 blue:0 alpha:1].CGColor)); // don't make color too saturated CGContextFillRect(context, rect); // draw base [[UIImage imageNamed:@"someImage.png"] drawInRect: rect …

4
2つの画像をマージする
Javaで2つの画像(BufferedImage)をマージする必要があります。透明性がなくても問題ありません。ベース画像にはすでにある程度の透明度があります。これをそのままにして、2番目の画像である「マスク」を適用したいと思います。この2番目の画像には不透明なピクセルがなく、実際にはほぼ完全に透明で、反射のようなある種の「光の効果」を与えるために透明度の低いピクセルがいくつかあります。重要な詳細:これを画面上で実行したくないので、グラフィックを使用して、結果のマージでBufferedImageを取得する必要があります。 誰か助けてもらえますか?ありがとう! 詳細:透明度を維持しながら2つの画像をマージします。これが私がしなければならないことです。 注:JavaのこのSet BufferedImageアルファマスクは、透明度のある2つの画像を適切に処理できないため、必要な処理を実行しません。最初の画像の透明度を変更します。

6
Viola-Jonesの顔検出は180kの機能を主張します
私はViola-Jonesの顔検出アルゴリズムの適応を実装してきました。この手法は、画像内に24x24ピクセルのサブフレームを配置し、その後、可能な限りすべてのサイズですべての位置に長方形のフィーチャを配置することに依存しています。 これらの機能は、2つ、3つ、または4つの長方形で構成できます。次の例を示します。 彼らは、網羅的なセットが180kを超えると主張しています(セクション2)。 検出器の基本解像度が24x24であることを考えると、長方形の特徴の網羅的なセットは非常に大きく、180,000を超えます。Haarベースとは異なり、長方形フィーチャのセットは不完全であることに注意してください。 以下の記述は本書に明示的に記載されていないため、私の側の仮定です。 2つの長方形のフィーチャが2つ、3つの長方形のフィーチャが2つ、4つの長方形のフィーチャが1つだけあります。この背後にある論理は、強調表示された長方形間の違いを観察しているということです。色や輝度などを明示的に観察しているわけではありません。 フィーチャタイプAを1x1ピクセルブロックとして定義することはできません。少なくとも1x2ピクセルである必要があります。また、タイプDは少なくとも2x2ピクセルである必要があり、このルールは他の機能にも適用されます。 中央のピクセルは分割できないため、フィーチャタイプAを1x3ピクセルブロックとして定義することはできません。それ自体からそれを差し引くことは、1x2ピクセルブロックと同じです。このフィーチャタイプは、偶数の幅に対してのみ定義されます。また、フィーチャタイプCの幅は3で割り切れる必要があり、このルールは他のフィーチャにも適用されます。 幅や高さが0のフィーチャを定義することはできません。したがって、xとyを24からフィーチャのサイズを引いた値まで繰り返します。 これらの仮定に基づいて、私は網羅的なセットを数えました: const int frameSize = 24; const int features = 5; // All five feature types: const int feature[features][2] = {{2,1}, {1,2}, {3,1}, {1,3}, {2,2}}; int count = 0; // Each feature: for (int i = 0; i < features; i++) …

4
Photoshopは2つの画像をどのようにブレンドしますか?[閉まっている]
閉まっている。この質問は、StackOverflowのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、StackOverflowのトピックになります。 昨年休業。 この質問を改善する アプリケーションで同じ効果を再現できるように、Photoshopが2つの画像をブレンドする方法を誰かに説明してもらえますか。

6
Pythonでウォーリーを見つけるにはどうすればよいですか?
恥知らずに時流に乗る:-) Mathematicaでウォーリーを見つける方法とフォローアップRでウォーリーを見つける方法に触発されました。新しいPythonユーザーとして、これがどのように行われるかを知りたいです。PythonはRよりもこれに適しているようで、MathematicaやMatlabのようにライセンスについて心配する必要はありません。 以下のような例では、明らかに単にストライプを使用するだけでは機能しません。このような難しい例で、単純なルールベースのアプローチを機能させることができれば興味深いでしょう。 正解は、元のスレッドでGregoryKlopperが提唱した制限付きボルツマンマシン(RBM)アプローチなど、ML手法を使用する必要があると思われるため、[machine-learning]タグを追加しました。Pythonで利用できるRBMコードがいくつかあり、開始するのに適している可能性がありますが、そのアプローチには明らかにトレーニングデータが必要です。 で、機械学習のための信号処理(MLSP 2009)2009 IEEE国際ワークショップ彼らは走ったのウォーリー:データ解析コンペの?。トレーニングデータはmatlab形式で提供されます。そのWebサイトのリンクは無効になっていますが、データ(Sean McLooneと同僚が採用したアプローチのソースはここにあります(SCMリンクを参照)に注意してください)。

9
画像から白い背景を削除し、透明にします
Mathematicaで次のことをしようとしています-RMagickは画像から白い背景を取り除き、それを透明にします。 しかし、実際の写真では、(画像の周りにハローがあるように)見栄えが悪くなります。 これまでに試したことは次のとおりです。 unground0[img_] := With[{mask = ChanVeseBinarize[img, TargetColor->{1.,1.,1.}]}, Rasterize[SetAlphaChannel[img, ImageApply[1-#&, mask]], Background->None]]] これがその機能の例です。 元の画像: 白い背景が背景なしで置き換えられた画像(または、ここでのデモンストレーション目的では、ピンクの背景): そのハローを取り除くためのアイデアはありますか?LevelPenaltyのようなものを微調整すると、画像の一部が失われるという犠牲を払ってハローを消すことができるだけです。 編集:バウンティのソリューションを比較できるように、上記のようにソリューションを構成してください。つまり、画像を取得して背景が透明な画像を返す、ungroundという名前の自己完結型関数です。

8
Pythonでの画像処理?[閉まっている]
現在のところ、この質問は私たちのQ&A形式には適していません。回答は事実、参考資料、または専門知識によって裏付けられることを期待していますが、この質問は、討論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてガイダンスを入手してください。 8年前に閉鎖されました。 最近、少なくとも基本的な程度の画像処理を必要とする問題に遭遇しました。これをPythonで実行できますか?もしそうなら、何を使用しますか?

13
c#アスペクト比を維持しながら、異なるサイズにサイズ変更する画像
新しい画像が押しつぶされて見えないように、元の画像のアスペクト比を維持しながら画像のサイズを変更しようとしています。 例えば: 150 * 100の画像を150 * 150の画像に変換します。 高さの余分な50ピクセルは、白い背景色で埋める必要があります。 これは私が使用している現在のコードです。 サイズ変更には適していますが、元の画像のアスペクト比を変更すると、新しい画像が押しつぶされます。 private void resizeImage(string path, string originalFilename, int width, int height) { Image image = Image.FromFile(path + originalFilename); System.Drawing.Image thumbnail = new Bitmap(width, height); System.Drawing.Graphics graphic = System.Drawing.Graphics.FromImage(thumbnail); graphic.InterpolationMode = InterpolationMode.HighQualityBicubic; graphic.SmoothingMode = SmoothingMode.HighQuality; graphic.PixelOffsetMode = PixelOffsetMode.HighQuality; graphic.CompositingQuality = CompositingQuality.HighQuality; graphic.DrawImage(image, …

3
OpenCVで数独グリッドのセルを取得する方法は?
私は過去数日間、写真から数独グリッドを取得するために努力しており、グリッドの小さな正方形を取得するのに苦労しています。下の写真に取り組んでいます。cannyフィルターで画像を処理するとうまくいくと思っていましたが、うまくいかず、各正方形のすべての輪郭を取得できませんでした。次に、アダプティブしきい値、大津、および従来のしきい値処理をテストに適用しましたが、毎回、すべての小さな正方形をキャプチャできるようには見えませんでした。 最終的な目標は、数値を含むセルを取得し、pytorchで数値を認識することです。そのため、数値のきれいな画像を用意して、認識が台無しにならないようにしたいと思います。 これを達成する方法について誰かがアイデアを持っていますか?よろしくお願いします!:D

2
画像内の複数の長方形を検出する
この画像でパイプの数を検出しようとしています。これには、OpenCVとPythonベースの検出を使用しています。同様の質問に対する既存の回答に基づいて、次の手順を思い付くことができました 画像を開く フィルターする エッジ検出を適用する 等高線を使用 カウントを確認する パイプの総数は〜909です我々はそれを手動でカウント与えるか、または4を取るとき。 フィルター適用後 import cv2 import matplotlib.pyplot as plt import numpy as np img = cv2.imread('images/input-rectpipe-1.jpg') blur_hor = cv2.filter2D(img[:, :, 0], cv2.CV_32F, kernel=np.ones((11,1,1), np.float32)/11.0, borderType=cv2.BORDER_CONSTANT) blur_vert = cv2.filter2D(img[:, :, 0], cv2.CV_32F, kernel=np.ones((1,11,1), np.float32)/11.0, borderType=cv2.BORDER_CONSTANT) mask = ((img[:,:,0]>blur_hor*1.2) | (img[:,:,0]>blur_vert*1.2)).astype(np.uint8)*255 このマスクされた画像が表示されます これは、表示される長方形の数の点でかなり正確に見えます。ただし、カウントして画像の上にバウンディングボックスをプロットしようとすると、多くの不要な領域も選択されます。円の場合、HoughCirclesには最大半径と最小半径を定義する方法があります。精度を向上させることができる長方形に似たものはありますか?また、私はこの問題への代替アプローチの提案を受け入れています。 ret,thresh = cv2.threshold(mask,127,255,0) contours,hierarchy …

5
2つの画像のトリミング/比率が少し異なっていても、2つの画像が「同じ」であることをどのように検出しますか
2つの異なる画像があります。 100px または400px そして 幅100px または400px あなたが見ることができるように、2つは人間の観点から明らかに「同じ」です。次に、それらが同じであることをプログラムで検出します。私は次のrmagickように呼ばれるruby gemを介して画像マジックを使用しています: img1 = Magick::Image.from_blob(File.read("image_1.jpeg")).first img2 = Magick::Image.from_blob(File.read("image_2.jpeg")).first if img1.difference(img2).first < 4000.0 # I have found this to be a good threshold, but does not work for cropped images puts "they are the same!!!" end これは、同じ比率/トリミングを持つ画像に適していますが、トリミングがわずかに異なり、同じ幅にサイズ変更されている場合は理想的ではありません。 トリミングが異なる画像にそれを行う方法はありますか?私は次のようなことを言える解決策に興味があります。1つの画像が他の画像の内部に含まれ、どこかをカバーしています(例:画像の90%)。 PS。それが役立つ場合は、画像をより高い解像度で取得できます(例:ダブル)

3
opencvを使用して画像に存在するすべてのテキストの場所を取得する
テキスト(数字とアルファベット)を含むこの画像があります。この画像に存在するすべてのテキストと数字の場所を取得したい。また、すべてのテキストも抽出したいと思います。 画像の座標とすべてのテキスト(数字とアルファベット)を取得するにはどうすればよいですか。たとえば10B、44、16、38、22Bなど

3
OpenCVでテーブルゲームカードの画像からアートワークを抽出する
私はpythonで小さなスクリプトを書いて、アートワークのみを表すトランプの部分を抽出またはトリミングし、残りをすべて削除しようとしています。さまざまなしきい値処理方法を試しましたが、うまくいきませんでした。また、アートワークの位置は常に同じ位置またはサイズではなく、常にテキストと境界線のみの長方形の形であるので、アートワークの位置を手動で記録することはできません。 from matplotlib import pyplot as plt import cv2 img = cv2.imread(filename) gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ret,binary = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU | cv2.THRESH_BINARY) binary = cv2.bitwise_not(binary) kernel = np.ones((15, 15), np.uint8) closing = cv2.morphologyEx(binary, cv2.MORPH_OPEN, kernel) plt.imshow(closing),plt.show() 現在の出力は私が得ることができる最も近いものです。私は正しい方法で、白い部分の周りに長方形を描くためにさらにラングリングを試すことができますが、それは持続可能な方法ではないと思います: 最後のメモとして、以下のカードを参照してください。すべてのフレームが正確に同じサイズまたは位置であるわけではありませんが、常にテキストと枠線のみのアートワークが存在します。厳密にカットする必要はありませんが、アートはカードの「領域」であり、テキストを含む他の領域に囲まれています。私の目標は、アートワークの領域をできるだけキャプチャすることです。

1
OCRのクリーニング画像
OCRの画像をクリアしようとしています:(行) 時々画像をさらに処理するためにこれらの行を削除する必要があり、かなり近づきつつありますが、多くの場合、しきい値がテキストから取りすぎています。 copy = img.copy() blur = cv2.GaussianBlur(copy, (9,9), 0) thresh = cv2.adaptiveThreshold(blur,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV,11,30) kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (9,9)) dilate = cv2.dilate(thresh, kernel, iterations=2) cnts = cv2.findContours(dilate, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) cnts = cnts[0] if len(cnts) == 2 else cnts[1] for c in cnts: area = cv2.contourArea(c) if area > 300: x,y,w,h = …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.