相关疑难解决方法(0)

增加图像亮度而不会溢出

尝试提高图像亮度时遇到问题.

这是原始图像:

在此输入图像描述

我想要的图像是这样的:

在此输入图像描述

现在使用以下代码增加亮度:

    image = cv2.imread("/home/wni/vbshare/tmp/a4_index2.png",0)

    if sum(image[0])/len(image[0])<200:
        new = np.where((255-image)<image,255,image*2)
    else:
        new = image
    return new
Run Code Online (Sandbox Code Playgroud)

而且,我得到了以下图像:

在此输入图像描述

所以,似乎某些点的亮度溢出.

我试图将阈值从200更改为其他数字,例如125,100,140等.但是,图像亮度几乎保持相同的暗或溢出.

ENV:

Python:2.7.10

Opencv:3.2.0

对此有任何建议表示赞赏.

谢谢.

python opencv numpy image-processing

14
推荐指数
1
解决办法
6487
查看次数

微调Hough Line功能参数OpenCV

我一直试图在广场周围找到4条线,以便我可以获得正方形的顶点.由于准确性,我采用这种方法而不是直接使用Harris或轮廓方法找到角点.在opencv中使用内置函数中的houghlines,我无法获得全长行来获得交叉点,而且我也得到了太多不相关的行.我想知道参数是否可以微调以获得我的要求?如果是,我该如何解决?我的问题与此处的问题完全相同.但是,即使在更改这些参数后,我也无法获得这些线条.我已将原始图像与代码和输出相关联:

原始图片:

原始图像

码:

#include <Windows.h>
#include "opencv2\highgui.hpp"
#include "opencv2\imgproc.hpp"
#include "opencv2/imgcodecs/imgcodecs.hpp"
#include "opencv2/videoio/videoio.hpp"

using namespace cv;
using namespace std;

int main(int argc, const char** argv)
{

    Mat image,src;
    image = imread("c:/pics/output2_1.bmp");
    src = image.clone();
    cvtColor(image, image, CV_BGR2GRAY);
    threshold(image, image, 0, 255, CV_THRESH_OTSU + CV_THRESH_BINARY_INV);

    namedWindow("thresh", WINDOW_NORMAL);
    resizeWindow("thresh", 600, 400);

    imshow("thresh", image);

    cv::Mat edges;

    cv::Canny(image, edges, 0, 255);

    vector<Vec2f> lines;
    HoughLines(edges, lines, 1, CV_PI / 180, 100, 0, 0);
    for (size_t i = 0; i < lines.size(); …
Run Code Online (Sandbox Code Playgroud)

c++ opencv hough-transform

3
推荐指数
1
解决办法
5246
查看次数

标签 统计

opencv ×2

c++ ×1

hough-transform ×1

image-processing ×1

numpy ×1

python ×1