4-2_Hough轉換找線
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <vector>
int main(int argc, char** argv)
{
   	cv::Mat img = cv::imread("building.jpg");
   	cv::Mat img_gray;
   	cv::Mat img_canny;
   	std::vector
   	cv::resize(img, img, cv::Size(512,512));
   	cv::cvtColor(img,img_gray,CV_RGB2GRAY);
   	cv::Canny(img_gray,img_canny,30,100,3,false);
   	cv::HoughLines(img_canny, HoughLines, 1, CV_PI / 180, 150, 0, 0);
   	cv::cvtColor(img_canny, img_canny, CV_GRAY2RGB);
   	std::cout << "HoughLines size: " << HoughLines.size() << std::endl;
   	for (size_t i = 0; i < HoughLines.size(); i++)
   	{
      		float rho = HoughLines[i][0], theta = HoughLines[i][1];
      		cv::Point pt1, pt2;
      		double a = cos(theta), b = sin(theta);
      		double x0 = a*rho, y0 = b*rho;
      		pt1.x = cvRound(x0 + 1000 * (-b));
      		pt1.y = cvRound(y0 + 1000 * (a));
      		pt2.x = cvRound(x0 - 1000 * (-b));
      		pt2.y = cvRound(y0 - 1000 * (a));
      		cv::line(img_canny, pt1, pt2, cv::Scalar(0, 0, 255), 1, CV_AA);
		
   	}
   	cv::imshow("HoughLine", img_canny);
   	cv::waitKey(0);
   	return 0; 
}