【问题标题】:How can I do image processing in ruby? No OpenCv in Ruby?如何在 ruby​​ 中进行图像处理? Ruby 中没有 OpenCv?
【发布时间】:2021-01-28 02:02:59
【问题描述】:

我只想从图像中提取签名部分并保存。
我已经使用 OpenCv 库在 Python 中成功实现了它。
但是 OpenCv 在 Ruby 中不可用。
我已经为 Ruby 尝试了 OpenCv 的所有包装器。他们没有工作,例如https://github.com/ruby-opencv/ruby-opencv .
以下是我的图像处理代码:

import numpy as np
import cv2

image = cv2.imread('10.jpg')
result = image.copy()
image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lower = np.array([90, 38, 0])
upper = np.array([145, 255, 255])
mask = cv2.inRange(image, lower, upper)

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
opening = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel, iterations=1)
close = cv2.morphologyEx(opening, cv2.MORPH_CLOSE, kernel, iterations=2)

cnts = cv2.findContours(close, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]

boxes = []
for c in cnts:
    (x, y, w, h) = cv2.boundingRect(c)
    boxes.append([x,y, x+w,y+h])

boxes = np.asarray(boxes)
left = np.min(boxes[:,0])
top = np.min(boxes[:,1])
right = np.max(boxes[:,2])
bottom = np.max(boxes[:,3])

result[close==0] = (255,255,255)
ROI = result[top:bottom, left:right].copy()
cv2.rectangle(result, (left,top), (right,bottom), (36, 255, 12), 2)

cv2.imshow('result', result)
cv2.imshow('ROI', ROI)
cv2.imshow('close', close)
cv2.imwrite('result.png', result)
cv2.imwrite('ROI.png', ROI)
cv2.waitKey()

输入: 输出:

我什至尝试过使用 gem imagemagick 进行图像处理,但没有成功。
我如何在 Ruby 中编写代码来完成与上述代码相同的工作。

【问题讨论】:

  • “它不起作用”不是对问题的有用描述。如果你不确切地说出你做了什么以及结果是什么,就不能说你做错了什么。见How to Askminimal reproducible example

标签: python ruby-on-rails ruby opencv image-processing


【解决方案1】:

这适用于我的图像(另存为sig.jpg),输出为out.jpg

安装 rmagick:

sudo apt-get install imagemagick libmagickcore-dev libmagickwand-dev
sudo gem install rmagick

Ruby 代码:

require 'rmagick'
include Magick
image = ImageList.new("sig.jpg")
image.fuzz = '40%'
image.trim!
image.write("out.jpg")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-10
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2014-11-30
    • 1970-01-01
    相关资源
    最近更新 更多