标签: image-processing

图像在上传前调整大小

我需要为用户提供一种手段,以jpeg格式将照片上传到他们的网站.但是,照片的原始尺寸非常大,我想在上传前调整大小选项对用户来说非常轻松.似乎我唯一的选择是客户端应用程序,它在通过Web服务上载照片之前调整照片大小,或者在上传操作上调整照片大小的客户端JavaScript挂钩.第二个选项是非常试验性的,因为我没有JavaScript图像大小调整库,并且很难让JavaScript运行我当前的调整大小工具ImageMagick.

我确信这不是一个不常见的场景,并且对这样做的网站的一些建议或指针将不胜感激.

javascript image-processing

51
推荐指数
3
解决办法
5万
查看次数

opencv多通道元素访问

我正在尝试学习如何使用openCV的新c ++接口.

如何访问多通道矩阵的元素.例如:

Mat myMat(size(3, 3), CV_32FC2);

for (int i = 0; i < 3; ++i)
{
    for (int j = 0; j < 3; ++j)
    {
        //myMat_at_(i,j) = (i,j);
    }
}
Run Code Online (Sandbox Code Playgroud)

最简单的方法是什么?像旧界面的cvSet2D之类的东西
最有效的方法是什么?类似于在旧界面中使用直接指针.

谢谢

c++ opencv image image-processing

51
推荐指数
3
解决办法
7万
查看次数

阅读JPEG元数据的问题(方向)

我有一张在iphone上拍摄的JPEG图像.在我的台式PC(Windows照片查看器,谷歌浏览器等)上,方向不正确.

我正在开发一个ASP.NET MVC 3 Web应用程序,我需要上传照片(目前正在使用plupload).

我有一些服务器端代码来处理图像,包括读取EXIF数据.

我已经尝试PropertyTagOrientation在EXIF元数据中读取字段(使用GDI - Image.PropertyItems),但该字段不存在.

所以它是一些特定的iphone元数据,或者其他一些元数据.

我使用了另一种工具,如Aurigma Photo Uploader,它正确读取元数据并旋转图像.它是如何做到的?

有没有人知道其他JPEG元数据可以包含所需的信息,以便知道它需要旋转,Aurigma使用的是什么?

这是我用来读取EXIF数据的代码:

var image = Image.FromStream(fileStream);

foreach (var prop in image.PropertyItems)
{
   if (prop.Id == 112 || prop.Id == 5029)
   {
      // do my rotate code - e.g "RotateFlip"
      // Never get's in here - can't find these properties.
   }
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c# jpeg metadata gdi image-processing

51
推荐指数
4
解决办法
3万
查看次数

使用OpenCV在iOS中进行透视变换+裁剪

我正在尝试在即将推出的应用中实现裁剪和透视校正功能.在做研究的同时,我遇到了:

在一组cv :: Point上执行cv :: warpPerspective以进行伪偏移

http://sudokugrab.blogspot.ch/2009/07/how-does-it-all-work.html

所以我决定尝试用OpenCV实现这个功能 - 框架就在那里,所以安装很快.但是,我没有得到我希望的结果:(第二张图片是结果)

原始照片和裁剪框

裁剪照片,结果不好

我已经翻译了所有代码以使用Xcode并三次检查坐标.你能告诉我我的代码有什么问题吗?为了完整起见,我还包括了UIImage - > Mat转换+反转:

- (void)confirmedImage
{
    if ([_adjustRect frameEdited]) {

    cv::Mat src = [self cvMatFromUIImage:_sourceImage];

    // My original Coordinates
    // 4-------3
    // |       |
    // |       |
    // |       |
    // 1-------2

    CGFloat scaleFactor =  [_sourceImageView contentScale];
    CGPoint p1 = [_adjustRect coordinatesForPoint:4 withScaleFactor:scaleFactor];
    CGPoint p2 = [_adjustRect coordinatesForPoint:3 withScaleFactor:scaleFactor];
    CGPoint p3 = [_adjustRect coordinatesForPoint:1 withScaleFactor:scaleFactor];
    CGPoint p4 = [_adjustRect coordinatesForPoint:2 withScaleFactor:scaleFactor];

    std::vector<cv::Point2f> c1;
    c1.push_back(cv::Point2f(p1.x, p1.y));
    c1.push_back(cv::Point2f(p2.x, p2.y));
    c1.push_back(cv::Point2f(p3.x, p3.y)); …
Run Code Online (Sandbox Code Playgroud)

opencv image-processing objective-c perspective ios

51
推荐指数
1
解决办法
2万
查看次数

使用opencv从图像中删除水印

首先,我有这个图像,我想制作一个应用程序,可以检测像它的图像,并从中删除圆(水印).

图像有水印

int main(){
    Mat im1,im2,im3,gray,gray2,result;

    im2=imread(" (2).jpg");
    namedWindow("x",CV_WINDOW_FREERATIO);
    imshow("x",im2);

    //converting it to gray
    cvtColor(im2,gray,CV_BGR2GRAY);
    // creating a new image that will have the cropped ellipse
    Mat ElipseImg(im2.rows,im2.cols,CV_8UC1,Scalar(0,0,0));

    //detecting the largest circle
    GaussianBlur(gray,gray,Size(5,5),0);
    vector<Vec3f> circles;
    HoughCircles(gray,circles,CV_HOUGH_GRADIENT,1,gray.rows/8,100,100,100,0);

    uchar x;
    int measure=0;int id=0;
    for(int i=0;i<circles.size();i++){
        if(cvRound(circles[i][2])>measure && cvRound(circles[i][2])<1000){
            measure=cvRound(circles[i][2]);
            id=i;
        }
    }


    Point center(cvRound(circles[id][0]),cvRound(circles[id][1]));
    int radius=cvRound(circles[id][2]);
    circle(im2,center,3,Scalar(0,255,0),-1,8,0);
    circle(im2,center,radius,Scalar(0,255,0),2,8,0);
    ellipse(ElipseImg,center,Size(radius,radius),0,0,360,Scalar(255,255,255),-1,8);
    cout<<"center: "<<center<<" radius: "<<radius<<endl;



    Mat res;
    bitwise_and(gray,ElipseImg,result);
    namedWindow("bitwise and",CV_WINDOW_FREERATIO);
    imshow("bitwise and",result);

    // trying to estimate the Intensity  of the circle for the thresholding
    x=result.at<uchar>(cvRound(circles[id][0]+30),cvRound(circles[id][1])); …
Run Code Online (Sandbox Code Playgroud)

c++ opencv watermark image-processing

51
推荐指数
2
解决办法
1万
查看次数

AForge和OpenCV之间的差异

我只是在学习计算机视觉和C#.看起来两个着名的图像处理库是OpenCVAForge.这两者有什么不同?

我正在用C#制作一个基本的图像编辑器,在研究时我遇到了两篇文章.但我真的不知道为什么我会选择一个而不是另一个.我想最终改进应用程序以包含更多高级功能.

谢谢.

c# opencv image-processing aforge

50
推荐指数
2
解决办法
3万
查看次数

将两个图像与OpenCV结合使用

我正在尝试使用OpenCV 2.1将两个图像合二为一,两个图像彼此相邻放置.在Python中,我正在做:

import numpy as np, cv

img1 = cv.LoadImage(fn1, 0)
img2 = cv.LoadImage(fn2, 0)

h1, w1 = img1.height,img1.width
h2, w2 = img2.height,img2.width

# Create an array big enough to hold both images next to each other.
vis = np.zeros((max(h1, h2), w1+w2), np.float32)

mat1 = cv.CreateMat(img1.height,img1.width, cv.CV_32FC1)
cv.Convert( img1, mat1 )

mat2 = cv.CreateMat(img2.height, img2.width, cv.CV_32FC1)
cv.Convert( img2, mat2 )

# Copy both images into the composite image.
vis[:h1, :w1] = mat1
vis[:h2, w1:w1+w2] = mat2

h,w = vis.shape
vis2 …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing computer-vision

50
推荐指数
5
解决办法
10万
查看次数

使用OpenCV在Python中反转图像

我想加载彩色图像,将其转换为灰度,然后反转文件中的数据.

我需要的是:在OpenCV中迭代数组并使用此公式更改每个值(这可能是错误的但对我来说似乎是合理的):

img[x,y] = abs(img[x,y] - 255)
Run Code Online (Sandbox Code Playgroud)

但我不明白为什么它不起作用:

def inverte(imagem, name):
    imagem = abs(imagem - 255)
    cv2.imwrite(name, imagem)


def inverte2(imagem, name):
    for x in np.nditer(imagem, op_flags=['readwrite']):
        x = abs(x - 255)
    cv2.imwrite(name, imagem)


if __name__ == '__main__':
    nome = str(sys.argv[1])
    image = cv2.imread(nome)
    gs_imagem = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    inverte(gs_imagem, "invertida.png")
    inverte2(gs_imagem, "invertida2.png")
Run Code Online (Sandbox Code Playgroud)

我不想做一个明确的循环(我试图更加pythonic).我可以看到,在一张白色背景的图像中,它变成了黑色,但只有这一点看起来不像其他颜色有很多(如果有的话)变化.

python arrays opencv numpy image-processing

50
推荐指数
3
解决办法
11万
查看次数

在Swift iOS中使用OpenCV

在我的xcode项目中添加OpenCV 2框架后,我尝试搜索samlpes或教程以与swift集成.

有没有相同的好教程?

opencv image-processing ios swift

50
推荐指数
2
解决办法
4万
查看次数

使用分布式粒子拟合图像中自由区域中的最大圆

我正在处理图像,以检测并适合包含分布式粒子的图像的任何自由区域中的最大圆圈:1

(能够检测粒子的位置).

一个方向是定义一个圆圈触摸任何三点组合,检查圆圈是否为空,然后在所有空圆圈中找到最大的圆圈.然而,它导致大量组合,即C(n,3),n图像中的粒子总数在哪里.

如果有人能提供我可以探索的任何提示或替代方法,我将不胜感激.

math matlab geometry image-processing particles

50
推荐指数
4
解决办法
3159
查看次数