尝试提高图像亮度时遇到问题.
这是原始图像:
我想要的图像是这样的:
现在使用以下代码增加亮度:
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
对此有任何建议表示赞赏.
谢谢.
我一直试图在广场周围找到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)